我和SQLAdapter有点问题。当运行下面的代码时,我得到了一个包含重复行的datatable。我不知道问题出在哪里。我已经谷歌了,几乎所有的帖子都在处理从sql DB读取的重复数据。我的数据库表中有4条记录。那里不可能有重复的数据。
using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;
public partial class Vehicles : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
LoadResources();
VehicleScheduler1.StartDate = new DateTime(DateTime.Today.Year, 1, 1);
VehicleScheduler1.DataBind();
}
}
public string GetConnectionString()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["DayPilot"].ConnectionString;
}
private void LoadResources()
{
VehicleScheduler1.Resources.Clear();
string sql = "SELECT [id], [name] FROM [vehicles]";
using (SqlConnection conn = new SqlConnection(GetConnectionString()))
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
da.Fill(dt);
foreach (DataRow r in dt.Rows)
{
string name = (string)r["name"];
string id = Convert.ToString(r["id"]);
VehicleScheduler1.Resources.Add(name, id);
conn.Close();
}
}
}
[EndResult][1]}发布于 2018-03-12 23:52:39
有两种方法可以从DataAdapter填充DataTable,您在这里已经使用了这两种方法:
dt.Load(cmd.ExecuteReader()); // remove this one (my suggestion)
da.Fill(dt); // or this我通常使用DataAdater.Fill(DataTable),所以你的第二种方法,省略了另一种。
发布于 2021-10-24 08:13:09
可能会对您有所帮助
transformerDataTableBindingSource.Clear();
DataGridTransfData.DataSource = null;
this.DataGridTransfData.DataSource =this.transformerDataTableBindingSource;
DataGridTransfData.Refresh();
this.transfData.TransformerDataTable.Clear();https://stackoverflow.com/questions/49239329
复制相似问题