首页 新闻 会员 周边

C#与sql数据处理实时更新

0
悬赏园豆:10 [待解决问题]

c#与sql的数据处理过程中,在C#中插入,删除,更新数据后,sql里的表不能实时更新,一定要在sql里面执行一下  “execute sql”,sql里的数据才更新。

我想问的是,c#能不能做到代替sql里面的“execute sql”命令,就是我不用再另外去sql里面做什么事情,数据在c#里面操作都能实时更新。

高级小白的主页 高级小白 | 初学一级 | 园豆:160
提问于:2019-05-07 10:52
< >
分享
所有回答(5)
0

什么数据库?我都没听说过有“execute sql”这个命令

会长 | 园豆:12401 (专家六级) | 2019-05-07 10:55

 

 

 

 

 

 

 

 

如图所示,需要每次C#更新之后要在sql里执行这条语句,数据才能更新。

支持(0) 反对(0) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 11:10

@高级小白: 估计是代码有问题,贴代码看看。你用的什么数据库?

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 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) 会长 | 园豆:12401 (专家六级) | 2019-05-07 13:43

@会长: 本来就没毛病的,我都运行了。我现在的目的是,我不想去sql里执行命令才更新数据,而是直接在C#里面就能更新数据。要不然我每次在c#里面插入一点或删除一点数据库的东西,我都需要去sql里面执行一次才更新数据,那多麻烦啊!

支持(0) 反对(0) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 13:53

@高级小白: 我终于明白你的意思了。这个没办法,在一个客户端更新了数据,另一个客户端得刷新才能看见,目前我还没有见过自动刷新的数据库工具

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2019-05-07 13:59

@会长: 我相信有这个功能的,因为我这俩个客户端已经能够实现读写了,只是不能刷新而已了,要不然我们很多的软件都不能用了,也许是我的理解能力有限,目前没想到好办法,比如我们的qq与微信,都是注册过用户名与密码,这些肯定储存在数据库或云数据中心的,肯定也是实时更新的

支持(0) 反对(0) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 14:19

@高级小白: 可以自己写个工具。你为什么要纠结这个

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2019-05-07 14:29

@会长: 不会,我要自己会写,我就不纠结这个了,还请大虾指点指点

支持(0) 反对(0) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 14:37

@高级小白: count = Cmd.ExecuteNonQuery(); 这个是执行语句,不是 sda.Fill(ds);,fill是获取语句

支持(0) 反对(0) jqw2009 | 园豆:2439 (老鸟四级) | 2019-05-07 16:14
0

C#是编程语言,用于执行相关逻辑;
sql是数据库,用于存储数据;
“在C#中插入,删除,更新数据”,是一系列的逻辑操作,最终你肯定是要执行sql命令,将数据存入数据库的。
你百度一下ado.net。

顾星河 | 园豆:7173 (大侠五级) | 2019-05-07 10:58

通过ado.net就能实现你说的,用C#操作数据库,不用再去sql客户端里执行sql命令。

支持(0) 反对(0) 顾星河 | 园豆:7173 (大侠五级) | 2019-05-07 11:00

@默卿: 如图所示,希望能用ado.net就能实现,不需要另外在sql里面执行这条命令了嘛?

支持(0) 反对(0) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 11:15

@高级小白: 你是在表格里改完数据,然后右键点执行?

支持(0) 反对(0) 顾星河 | 园豆:7173 (大侠五级) | 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) 顾星河 | 园豆:7173 (大侠五级) | 2019-05-08 11:03
0

这个没办法,是两个客户端,所以想要去sql里查看数据,需要执行sql来获取最新数据。

nil | 园豆:879 (小虾三级) | 2019-05-07 11:14
0

ado.net
或者ef
都可以,你说的那个是不是你在菜单上操作。不一样的。

gw2010 | 园豆:1487 (小虾三级) | 2019-05-07 11:16
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 | 园豆:2439 (老鸟四级) | 2019-05-07 14:54

没办法,太菜了,所以只好多问问一下园子里的大虾哦!

我说的是需要实时在C#里面更新sql里面的数据,我在C#里插入,删除,更新sql之后,不需要在sql里面进行任何操作,c#的更改都要更新到sql数据库里面去。

支持(0) 反对(0) 高级小白 | 园豆:160 (初学一级) | 2019-05-07 15:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册