0

我正在尝试向包含我的 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();
4

1 回答 1

3

尝试这个,

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

另一种选择是在您的选择语句中返回此字段,

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);
于 2013-03-24T15:18:29.743 回答