在ADO.NET中,有两种操作数据库的方式:
(1)采用无连接的方式。(DataSet,DataTable)
(2)采用保持连接的方式。
不论采用哪种方式,都可以通过SqlCommand对象提供的方法传递对数据库操作的命令,并返回命令执行的结果。
我下面的程序应该是面向连接,没有用到DataSet,DataTable,照理说程序运行,比如刚开始成绩是80,我每次触发一个事件,调用下面的方法,结果就加10,
当加到120我关闭运行,查看表MyTable2的时候结果还是80,我再一次运行发现成绩是上一个值120算起。
疑问:既然没有更新表格,为啥能记录成绩改变了的值120?难道是把更新记录在别的文件??
private void AddGrade()
{
//使用using语句确保关闭连接
using (SqlConnection conn = new SqlConnection(connectionString))
{
string sql = "update MyTable2 set 成绩=成绩+10 where 姓名='张三玉'";
//创建SqlCommand实例,并设置SQL语句和使用的连接实例
SqlCommand cmd = new SqlCommand(sql, conn);
listBox1.Items.Clear();
try
{
conn.Open();
//将执行SQL语句影响的记录数赋值给number
int number = cmd.ExecuteNonQuery();
listBox1.Items.Add(string.Format("修改了{0}条记录", number));
cmd.CommandText = "select 成绩 from mytable2 where 姓名='张三玉'";
int fen = (int)cmd.ExecuteScalar();
MessageBox.Show(fen.ToString());
}
catch (Exception ex)
{
listBox1.Items.Add(string.Format("修改记录失败:{0}", ex.Message));
}
}
}
(1)采用无连接的方式。(DataSet,DataTable)
(2)采用保持连接的方式。
不论采用哪种方式,都可以通过SqlCommand对象提供的方法传递对数据库操作的命令,并返回命令执行的结果。
我下面的程序应该是面向连接,没有用到DataSet,DataTable,照理说程序运行,比如刚开始成绩是80,我每次触发一个事件,调用下面的方法,结果就加10,
当加到120我关闭运行,查看表MyTable2的时候结果还是80,我再一次运行发现成绩是上一个值120算起。
疑问:既然没有更新表格,为啥能记录成绩改变了的值120?难道是把更新记录在别的文件??
private void AddGrade()
{
//使用using语句确保关闭连接
using (SqlConnection conn = new SqlConnection(connectionString))
{
string sql = "update MyTable2 set 成绩=成绩+10 where 姓名='张三玉'";
//创建SqlCommand实例,并设置SQL语句和使用的连接实例
SqlCommand cmd = new SqlCommand(sql, conn);
listBox1.Items.Clear();
try
{
conn.Open();
//将执行SQL语句影响的记录数赋值给number
int number = cmd.ExecuteNonQuery();
listBox1.Items.Add(string.Format("修改了{0}条记录", number));
cmd.CommandText = "select 成绩 from mytable2 where 姓名='张三玉'";
int fen = (int)cmd.ExecuteScalar();
MessageBox.Show(fen.ToString());
}
catch (Exception ex)
{
listBox1.Items.Add(string.Format("修改记录失败:{0}", ex.Message));
}
}
}
解决方案 »
- 父窗体引用了另外一个dll文件,继承窗体在启动vs2008时报错,编译与运行正常
- 请教:编程调用Windows Server 2003全文索引的问题?
- 如何通过TCp协议socket编程,向远端发送命令并监听对方回应?
- 新手求教,关于读取Excel的问题!
- 一个在房屋租赁中遇到的难题?
- C# 中的prop的自动属性设置怎么用?
- 关于软件升级的问题
- 有没有关于C#性能编程的书
- 我要做一个比较大型的CS项目,请问有什么项目管理软件会比较好?谢谢
- 静态成员初始化之后什么时候会释放?是在程序完全结束后被释放吗?与全局变量有什么不同?
- 窗体里有个KEypress 和keydown,如何让enter在keydown相应,就是要屏蔽keypress
- 编码转换问题
PS:一楼中执行结果是改变了,但是表的数据始终没改变,当我重新生成解决方案时,成绩的值又变成80了,why?