我在程序中添加删除表内容调试都可以通过,但是数据库中的内容都没变,是不是因为没添加数据源,可是添加就是不成功,调试时又能显示数据库内容,到底是怎么回事?
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection( "user id=hxh;password=20080712;initial catalog=hxh;server=XINAN0107\\SQLEXPRESS");
conn.Open();
string strCmd;
strCmd="SELECT * FROM Student";
SqlDataAdapter da = new SqlDataAdapter(strCmd,conn);
DataTable dt = new DataTable();
da.Fill(dt);
dt.Rows[1]["age"] = "9"; DataRow row = dt.NewRow();
row["name"] = "d";
row["age"] = "21";
row["course"] = "物理";
dt.Rows.Add(row); dt.Rows[0].Delete(); textBox1.Text = dt.Rows[3]["name"].ToString();
textBox2.Text = dt.Rows[3]["age"].ToString();
textBox3.Text = dt.Rows[3]["course"].ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection( "user id=hxh;password=20080712;initial catalog=hxh;server=XINAN0107\\SQLEXPRESS");
conn.Open();
string strCmd;
strCmd="SELECT * FROM Student";
SqlDataAdapter da = new SqlDataAdapter(strCmd,conn);
DataTable dt = new DataTable();
da.Fill(dt);
dt.Rows[1]["age"] = "9"; DataRow row = dt.NewRow();
row["name"] = "d";
row["age"] = "21";
row["course"] = "物理";
dt.Rows.Add(row); dt.Rows[0].Delete(); textBox1.Text = dt.Rows[3]["name"].ToString();
textBox2.Text = dt.Rows[3]["age"].ToString();
textBox3.Text = dt.Rows[3]["course"].ToString();
}
因为你缺少创建Delete的SQL语句,在Update之前加一名就行了:
SqlDb.SqlDbCommandBuilder cbdt = new SqlDb.SqlDbCommandBuilder(da);
da.Update(dt);
http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspxhttp://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx
{
SqlConnection conn = new SqlConnection( "user id=hxh;password=20080712;initial catalog=hxh;server=XINAN0107\\SQLEXPRESS");
conn.Open();
SqlCommand comm=new SqlCommand("SELECT * FROM Student",conn);
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds, "Student");
SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataTable dt = ds.Tables["Student"];
dt.Rows[1]["age"] = "9"; DataRow row = dt.NewRow();
row["name"] = "d";
row["age"] = "21";
row["course"] = "物理";
dt.Rows.Add(row); dt.Rows[0].Delete(); textBox1.Text = dt.Rows[3]["name"].ToString();
textBox2.Text = dt.Rows[3]["age"].ToString();
textBox3.Text = dt.Rows[3]["course"].ToString(); da.Update(dt); }
加了SqlCommandBuilder cb = new SqlCommandBuilder(da);并吧DataTable放入DataSet中,调试出现异常:da.Update(dt);这句对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成
{
SqlConnection conn = new SqlConnection( "user id=hxh;password=20080712;initial catalog=hxh;server=XINAN0107\\SQLEXPRESS");
conn.Open();
SqlCommand comm=new SqlCommand("SELECT * FROM Student",conn);
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds, "Student");
SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataTable dt = ds.Tables["Student"];
dt.Rows[1]["age"] = "9"; DataRow row = dt.NewRow();
row["name"] = "d";
row["age"] = "21";
row["course"] = "物理";
dt.Rows.Add(row); dt.Rows[0].Delete(); textBox1.Text = dt.Rows[3]["name"].ToString();
textBox2.Text = dt.Rows[3]["age"].ToString();
textBox3.Text = dt.Rows[3]["course"].ToString(); da.Update(dt);
}
添加了SqlCommandBuilder cb = new SqlCommandBuilder(da);把DataTable放入DataSet,调试出现异常: da.Update(dt);这句对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成。