程序中定义了清空旋钮,但是按了之后有更新成功提示,实际上数据库内数据并没清空
程序中定义了清空按钮,但是按了之后有更新成功提示,实际上数据库内数据并没清空
我的思路是现将需要清空的表从数据库内选择出来,然后填充到dataset中,接着将dataset中数据清空,最后将清空后的的dataset更新到数据库 以达到清空数据库内某个数据表的目的,但是现在的问题是 程序运行都没问题 就是数据没清空(数据库内相应数据表的信息没改变)。我不知道是哪个环节出问题了,各位高手帮我看看代码呢,谢谢!
以下是代码:
private void button1_Click(object sender, EventArgs e)
{
string connectString = "Data Source=.;Initial Catalog=FinSystem;User ID=sa;pwd=1992106713";
SqlConnection sqlCnt = new SqlConnection(connectString);
sqlCnt.Open();
//String sqlget = "Select * from Table_Income;Select * from Table_Expend;Select * from Table_Budget";
DataSet myDataSet = new DataSet();//创建dataset对象
if (this.comboBox1.Text=="收入数据集")
{
String sqlget= "Select * from Table_Income";
SqlDataAdapter myDataAdapter= new SqlDataAdapter(sqlget, sqlCnt);
myDataAdapter.Fill(myDataSet, "Table_Income");
if (MessageBox.Show("您确定清空所有预算数据信息?", "确认清空", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
myDataSet.Clear();
myDataSet.AcceptChanges();
myDataAdapter.Update(myDataSet, "Table_Income");
MessageBox.Show("数据清空已成功!", "提示");
}
else
{
return;
}
}
------解决思路----------------------
如果未指定 INSERT、UPDATE 或 DELETE 语句,Update 方法会生成异常。 但是,如果设置 .NET Framework 数据提供程序的 SelectCommand 属性,则可以创建 SqlCommandBuilder 或 OleDbCommandBuilder 对象来为单个表更新自动生成 SQL 语句。 然后,CommandBuilder 将生成任何其他未设置的 SQL 语句。 此生成逻辑要求 DataSet 中存在键列信息。 有关更多信息,请参见使用 CommandBuilder 生成命令。
------解决思路----------------------
这样是不能删除数据库表中的数据的,想清除表中数据执行sql 的删除语句
------解决思路----------------------
------解决思路----------------------
断点看看哪里出错???
cmd.Connection = sqlCnt;
有没有改自己的连接??
------解决思路----------------------
用SqlCommand,不是一条sql语句就搞定删除了吗
我的思路是现将需要清空的表从数据库内选择出来,然后填充到dataset中,接着将dataset中数据清空,最后将清空后的的dataset更新到数据库 以达到清空数据库内某个数据表的目的,但是现在的问题是 程序运行都没问题 就是数据没清空(数据库内相应数据表的信息没改变)。我不知道是哪个环节出问题了,各位高手帮我看看代码呢,谢谢!
以下是代码:
private void button1_Click(object sender, EventArgs e)
{
string connectString = "Data Source=.;Initial Catalog=FinSystem;User ID=sa;pwd=1992106713";
SqlConnection sqlCnt = new SqlConnection(connectString);
sqlCnt.Open();
//String sqlget = "Select * from Table_Income;Select * from Table_Expend;Select * from Table_Budget";
DataSet myDataSet = new DataSet();//创建dataset对象
if (this.comboBox1.Text=="收入数据集")
{
String sqlget= "Select * from Table_Income";
SqlDataAdapter myDataAdapter= new SqlDataAdapter(sqlget, sqlCnt);
myDataAdapter.Fill(myDataSet, "Table_Income");
if (MessageBox.Show("您确定清空所有预算数据信息?", "确认清空", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
myDataSet.Clear();
myDataSet.AcceptChanges();
myDataAdapter.Update(myDataSet, "Table_Income");
MessageBox.Show("数据清空已成功!", "提示");
}
else
{
return;
}
}
------解决思路----------------------
如果未指定 INSERT、UPDATE 或 DELETE 语句,Update 方法会生成异常。 但是,如果设置 .NET Framework 数据提供程序的 SelectCommand 属性,则可以创建 SqlCommandBuilder 或 OleDbCommandBuilder 对象来为单个表更新自动生成 SQL 语句。 然后,CommandBuilder 将生成任何其他未设置的 SQL 语句。 此生成逻辑要求 DataSet 中存在键列信息。 有关更多信息,请参见使用 CommandBuilder 生成命令。
------解决思路----------------------
这样是不能删除数据库表中的数据的,想清除表中数据执行sql 的删除语句
------解决思路----------------------
if (MessageBox.Show("您确定清空所有预算数据信息?", "确认清空", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
myDataSet.Tables["Table_Income"].Clear();
if (myDataSet.Tables["Table_Income"] == null)
{
SqlCommandBuilder cmd = new SqlCommandBuilder(myDataAdapter);
myDataAdapter.Update(myDataSet, "Table_Income");
string sql="delete Table_Income";
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
cmd.ExecuteNonQuery()
MessageBox.Show("数据清空已成功!", "提示");
}
}
------解决思路----------------------
断点看看哪里出错???
cmd.Connection = sqlCnt;
有没有改自己的连接??
------解决思路----------------------
用SqlCommand,不是一条sql语句就搞定删除了吗
using(SqlCommand cmd = new SqlCommad("delete from tablename where col1=" + para1, con))
{
con.open();
cmd.ExecuteNonQuery();
con.Close();
}