前景提要
C#与sql数据处理实时更新
0 悬赏园豆: 10 [待解决问题] c#与sql的数据处理过程中,在C#中插入,删除,更新数据后,sql里的表不能实时更新,一定要在sql里面执行一下 “execute sql”,sql里的数据才更新。
我想问的是,c#能不能做到代替sql里面的“execute sql”命令,就是我不用再另外去sql里面做什么事情,数据在c#里面操作都能实时更新。 C#与SQL更新 执行execute sql命令 高级小白 | 初学一级 | 园豆: 160
提问于:2019-05-07 10:52 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(5) 0 什么数据库?我都没听说过有“execute sql”这个命令 会长 | 园豆:8398 (大侠五级) | 2019-05-07 10:55
如图所示,需要每次C#更新之后要在sql里执行这条语句,数据才能更新。 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 11:10 @高级小白: 估计是代码有问题,贴代码看看。你用的什么数据库? 支持( 0 ) 反对( 0 ) 会长 | 园豆:8398 (大侠五级) | 2019-05-07 11:14 @会长: private void button_Insert_Click( object sender, EventArgs e) { SqlConnection conn = BaseClass.DBConn.Company(); conn.Open(); DataSet ds = new DataSet(); // 插入命令 SqlCommand cmd = new SqlCommand( " insert into tb_employee(name, number, password, age, position, sex) values (@name, @number, @password, @age, @position, @sex) " , conn); // cmd.Parameters.Add("@name", SqlDbType.Text); // cmd.Parameters["@name"].Value = textBox_name.Text; // cmd.Parameters.Add("@number", SqlDbType.Text); // cmd.Parameters["@number"].Value = textBox_number.Text; // cmd.Parameters.Add("@password", SqlDbType.Text); // cmd.Parameters["@password"].Value = textBox_pwd.Text; // cmd.Parameters.Add("@age", SqlDbType.Int); // cmd.Parameters["@age"].Value = sum1; // cmd.Parameters.Add("@position", SqlDbType.Int); // cmd.Parameters["@position"].Value = sum2; // cmd.Parameters.Add("@sex", SqlDbType.Text); // cmd.Parameters["@sex"].Value = textBox_sex.Text; cmd.Parameters.AddWithValue( " @name " , textBox_name.Text); cmd.Parameters.AddWithValue( " @number " , textBox_number.Text); cmd.Parameters.AddWithValue( " @password " , textBox_pwd.Text); cmd.Parameters.AddWithValue( " @age " , textBox_age.Text); cmd.Parameters.AddWithValue( " @position " , textBox_power.Text); cmd.Parameters.AddWithValue( " @sex " , textBox_sex.Text); SqlDataAdapter sda = new SqlDataAdapter(cmd); sda.Fill(ds); } private void button_Delete_Click_1( object sender, EventArgs e) // 删除命令 { SqlConnection conn = BaseClass.DBConn.Company(); conn.Open(); DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand( " delete from tb_employee where name = @name " , conn); cmd.Parameters.AddWithValue( " @name " , textBox3.Text); SqlDataAdapter sda = new SqlDataAdapter(cmd); sda.Fill(ds); }
如代码所示:插入与删除命令都是能正常执行的,但就是每次都要去sql里面执行一下execute sql命令才能更新数据库。用的数据库是sql server。 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 11:21 @高级小白: 看不出有啥毛病 支持( 0 ) 反对( 0 ) 会长 | 园豆:8398 (大侠五级) | 2019-05-07 13:43 @会长: 本来就没毛病的,我都运行了。我现在的目的是,我不想去sql里执行命令才更新数据,而是直接在C#里面就能更新数据。要不然我每次在c#里面插入一点或删除一点数据库的东西,我都需要去sql里面执行一次才更新数据,那多麻烦啊! 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 13:53 @高级小白: 我终于明白你的意思了。这个没办法,在一个客户端更新了数据,另一个客户端得刷新才能看见,目前我还没有见过自动刷新的数据库工具 支持( 0 ) 反对( 0 ) 会长 | 园豆:8398 (大侠五级) | 2019-05-07 13:59 @会长: 我相信有这个功能的,因为我这俩个客户端已经能够实现读写了,只是不能刷新而已了,要不然我们很多的软件都不能用了,也许是我的理解能力有限,目前没想到好办法,比如我们的qq与微信,都是注册过用户名与密码,这些肯定储存在数据库或云数据中心的,肯定也是实时更新的 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 14:19 @高级小白: 可以自己写个工具。你为什么要纠结这个 支持( 0 ) 反对( 0 ) 会长 | 园豆:8398 (大侠五级) | 2019-05-07 14:29 @会长: 不会,我要自己会写,我就不纠结这个了,还请大虾指点指点 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 14:37 @高级小白: count = Cmd.ExecuteNonQuery(); 这个是执行语句,不是 sda.Fill(ds);,fill是获取语句 支持( 0 ) 反对( 0 ) jqw2009 | 园豆:1946 (小虾三级) | 2019-05-07 16:14 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 C#是编程语言,用于执行相关逻辑;
sql是数据库,用于存储数据;
“在C#中插入,删除,更新数据”,是一系列的逻辑操作,最终你肯定是要执行sql命令,将数据存入数据库的。
你百度一下ado.net。 默卿 | 园豆:4551 (老鸟四级) | 2019-05-07 10:58 通过ado.net就能实现你说的,用C#操作数据库,不用再去sql客户端里执行sql命令。 支持( 0 ) 反对( 0 ) 默卿 | 园豆:4551 (老鸟四级) | 2019-05-07 11:00 @默卿: 如图所示,希望能用ado.net就能实现,不需要另外在sql里面执行这条命令了嘛? 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 11:15 @高级小白: 你是在表格里改完数据,然后右键点执行? 支持( 0 ) 反对( 0 ) 默卿 | 园豆:4551 (老鸟四级) | 2019-05-07 11:47 @默卿: 不是的,我是用C#更改数据完成之后,才到sql里右键点执行的,才将C#更改的数据刷新到sql里。 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 12:43 @默卿: 大虾,你能说说用ado.net具体怎么实现嘛、我看了好久的书,都没有做好! 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-08 10:53 @高级小白: 这里有个关于ado.net的DB辅助类,你看看 https://www.cnblogs.com/gyjjyg/p/6811280.html 支持( 0 ) 反对( 0 ) 默卿 | 园豆:4551 (老鸟四级) | 2019-05-08 11:03 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 这个没办法,是两个客户端,所以想要去sql里查看数据,需要执行sql来获取最新数据。 nil | 园豆:660 (小虾三级) | 2019-05-07 11:14 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 ado.net
或者ef
都可以,你说的那个是不是你在菜单上操作。不一样的。 gw2010 | 园豆:1399 (小虾三级) | 2019-05-07 11:16 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 又是你,你都能读到数据库的数据,你不能保存数据??
public static int ExecuteNonQuery(string strSql)
{
OracleConnection Conn = new OracleConnection(strConn);
try
{
int count = 0;
OracleCommand Cmd = Cmd = new OracleCommand();
Cmd.Connection = Conn;
Cmd.CommandType = CommandType.Text;
Conn.Open();
Cmd.CommandText = strSql;
count = Cmd.ExecuteNonQuery();
Cmd.Dispose();
Conn.Close();
Conn.Dispose();
return count;
}
catch (Exception)
{
Conn.Close();
Conn.Dispose();
throw;
}
} jqw2009 | 园豆:1946 (小虾三级) | 2019-05-07 14:54 没办法,太菜了,所以只好多问问一下园子里的大虾哦!
我说的是需要实时在C#里面更新sql里面的数据,我在C#里插入,删除,更新sql之后,不需要在sql里面进行任何操作,c#的更改都要更新到sql数据库里面去。 支持( 0 ) 反对( 0 ) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 15:33 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。