SQLDataAdapter 复制数据



我在使用SQLAdapter时遇到了一些问题。当运行以下代码时,我最终得到一个重复行的数据表。我无法弄清楚问题出在哪里。我已经用谷歌搜索了这个,几乎所有的帖子都涉及从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]}

有两种方法可以从DataAdapter填充DataTable,您在这里都使用了:

dt.Load(cmd.ExecuteReader());  // remove this one (my suggestion)
da.Fill(dt);                   // or this

我通常使用DataAdater.Fill(DataTable),所以你的第二种方式,省略另一种。

可能会有所帮助

     transformerDataTableBindingSource.Clear();
      DataGridTransfData.DataSource = null;
      this.DataGridTransfData.DataSource =this.transformerDataTableBindingSource;
      DataGridTransfData.Refresh();
      this.transfData.TransformerDataTable.Clear();

相关内容

  • 没有找到相关文章

最新更新