向已填充的数据集添加列

本文关键字:添加 数据集 填充 | 更新日期: 2023-09-27 18:05:28

我试图添加一个列到一个数据集,有我的sql表数据。我基本上想在加载数据后添加一列,以跟踪哪些值已经在数据库中,哪些值是数据网格中的新值。然后我就知道要向数据库中添加哪些行。我很感激你的帮助。

这是我的代码,我只是想让列显示在这一点上,我将担心更新行与这个新列稍后。

        sqlcom.CommandText = @"INSERT INTO members (firstname, lastname) VALUES ('" + textBox1.Text +"', '"+ textBox2.Text +"')";
        sqlcom.ExecuteNonQuery();
        SqlDataAdapter sqladapt = new SqlDataAdapter("SELECT * FROM members", thisConnect);
        DataSet ds = new DataSet();
        sqladapt.Fill(ds, "members");
        //add column to dataset?
        ds.Tables["members"].Columns.Add("inDb");
        dataGridView1.DataSource = ds;
        dataGridView1.DataMember = "members";
        thisConnect.Close();

向已填充的数据集添加列

试试这个,

ds.Tables["members"].Columns.Add(new DataColumn("inDb", typeof(Boolean)));

另一个选项是在select语句中返回这个字段,

select *, cast(1 as bit) as InDb from member

为所有从表返回的值设置为true。

你还应该考虑SQL参数来避免任何SQL注入,例如,让我说我在第一个文本框中输入-','-');truncate table members;,这将删除成员表中的所有行,没有检索数据的选项

sqlcom.CommandText = @"INSERT INTO members (firstname, lastname) 
                       VALUES (@first,@last)";
sqlcom.Parameters.AddWithValue("@first",textBox1.Text);
sqlcom.Parameters.AddWithValue("@last",textBox2.Text);