在运行模式下输入数据时,表自动增量不起作用

时间:2010-10-03 18:55:48

标签: c# sql

我已经编写了从文本框和更新中获取数据的代码但是因为我在mdf文件中设置了ID将自动递增但不会发生这种情况。但是如果我通过右键单击服务器中的“显示表数据”来输入数据探险家然后有自动增量 这里是代码

public partial class Form1 : Form
{
    System.Data.SqlClient.SqlConnection con;
    System.Data.SqlClient.SqlDataAdapter da;
    System.Data.SqlClient.SqlCommandBuilder cb;
    DataRow row;
    DataSet ds1;        
    public Form1()
    {
        InitializeComponent();
        con = new System.Data.SqlClient.SqlConnection();
        ds1 = new DataSet();

        con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Database1.mdf;Integrated Security=True;User Instance=True";
        try
        {
            con.Open();
            MessageBox.Show("Sucess Opening Database");
            string sql = "SELECT * From student";
            da = new System.Data.SqlClient.SqlDataAdapter(sql, con);
            da.Fill(ds1,"students");
            dataGridView1.DataSource = ds1.Tables["students"];
            con.Close();
        }
        catch(Exception e)
        {
            MessageBox.Show(e.ToString());
        }
    }

    private void save_Click(object sender, EventArgs e)
    {
        cb = new System.Data.SqlClient.SqlCommandBuilder(da);
        row = ds1.Tables["students"].NewRow();
        row["Name"] = textBoxName.Text;
        row["Class"] = textBoxClass.Text;
        ds1.Tables["students"].Rows.Add(row);
        da.Update(ds1,"students");
        dataGridView1.DataSource = ds1.Tables["students"];
    }
}

先谢谢

1 个答案:

答案 0 :(得分:0)

这是很久以前的事了,但jgauffin上面的评论中提到了答案。

如果您在数据集中设置自动增量列并希望它为您自动增加ID,则在添加新行时传入null。