2 yunchen yuan yunchen_yuan 于 2017.01.03 17:06 提问

.NET怎么连接一次数据库执行多条语句

protected void Button1_Click(object sender, EventArgs e)
{
string SqlStr = ConfigurationManager.ConnectionStrings["conn"].ToString();

SqlConnection conn = new SqlConnection(SqlStr);

conn.Open();
string sql3 = "select 编号 from CS where 编号 = '" + TextBox1.Text.Trim() + "'";
SqlCommand cmd3 = new SqlCommand(sql3, conn);
cmd3.CommandText = sql3;
cmd3.Connection = conn;
try
{
string BH = cmd3.ExecuteScalar().ToString();
string sql2 = "update CS set 数量 = 数量+1 where 编号 = " + TextBox1.Text.Trim();
SqlCommand cmd2 = new SqlCommand(sql2, conn);

        Response.Write("<script>alert('插入成功')</script>");
    }
    catch
    {
        string sql1 = "insert into CS (编号,索书号,书名,作者,数量) values (";
        sql1 += "'" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() +
            "','" + TextBox4.Text.Trim() + "','" + "1" + "')";
        SqlCommand cmd1 = new SqlCommand(sql1, conn);
        Response.Write("<script>alert('插入成功')</script>");
    }

    conn.Close();

}

第一条语句执行没问题,后面两条语句不报错但没有结果,我的是SQL数据库

2个回答

Ma_shuhua
Ma_shuhua   2017.01.03 17:18
已采纳

SqlCommand cmd = new SqlCommand(sql, conn);
你应该要在这一句后面加上 cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery()才是cmd的执行,你现在只是赋值,并没有执行cmd语句

yunchen_yuan
yunchen_yuan 确实是这个问题,感谢
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2017.01.03 17:17

如果你第一条语句执行没有报异常,就不会执行后两条。一种可能出现的异常是,你没有查询到编号,那么进入catch。
如果都要执行,不要写在catch里。

caozhy
caozhy 回复yunchen_yuan: 另外你cmd1和cmd2没有执行。加上 cmd1.ExecuteScalar(); 和 cmd2.ExecuteScular();
一年多之前 回复
yunchen_yuan
yunchen_yuan 感谢回答,问题找到了,少写了一句返回执行行数的语句,结果没有被执行
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C#(.net)中的一次连接数据库执行多条sql语句(两种方法)
第一种方法:            string str="server=.;uid=sa;pwd=111111;database=text_db";//连接字符串        SqlConnection SCON = null;//连接对象        SqlCommand SCom=new SqlCommand();//命令对象            SCON=new Sq
.Net Oracle一次请求执行多条sql语句 Oracle批处理 使用游标一次执行多条Sql语句
Oracle 一次请求执行多条sql语句 在.net 中查询Sql Server 一次请求执行多条sql语句很简单 拼接起来就好了 初次接触oracle 在网上寻找了很多方法终于被我解决了 我把问题想复杂了 例子中提供了2种解决方案 一种是用游标 还有一种就是很简单的拼接字符串的方法 语法略微和sql server有些区别 适合新手学习
在oracle中一次执行多条语句
工作中需要一次执行多条语句,本来想直接使用sql拼接成一个字符串进行批处理,原sql如下:String sql = ""; for(int i=0; i<deviceInfo.getDevice_ip().length; i++){ if(deviceInfo.getDevice_ip()[i] != null && !deviceInfo.getDevice_ip()[i]
jmeter中一次运行多条sql语句
操作比较简单,主要就分两步: 第一步:在JDBC Connection Configuration中设置,主要见下图标注部分增加:?allowMultiQueries=true 第二步:在JDBC Request中设置 注意:Quer Type一定要选择 Callable statement,使用Callablestatement时,一次可以包含多个SQL,但非结尾的SQL要加“;”
C#一次连接数据库执行多条sql语句(三种方法)
第一种方法:             string str="server=.;uid=sa;pwd=111111;database=text_db";//连接字符串            SqlConnection SCON = null;//连接对象            SqlCommand SCom=new SqlCommand();//命令对象           
一次性执行多条SQL语句
本地:  windows  192.168.55.133         远程1:192.168.55.9         远程2:192.168.55.10         利用phpmyadmin来赂远程SQL Server导入大量数据时,会很慢,基于卡死。因为,它是通过Web方式来上传的,导入之前它会首先将要导入的.sql文件先上传到服务器然后再执行导入命令。我们都知道,
mysql基础-- 一条请求执行多条SQL语句
最近做一个数据库初始化工具的时候发现了这个问题,就是在一个Statement中执行一条SQL语句的时候可以正确执行,如果同时执行多条,就会报SQL语法错误,伤透了脑筋。 经过网上查找,发现有两种解决办法: 1、最简单的办法,在MySQL的连接字符串中设置allowMultiQueries参数置为true。 2、在程序中对SQL语句以分号拆分成多条SQL语句,然后使用Statement的addB
MyBatis 一次执行多条SQL语句
在实际工作会遇到什么情况下,需要在MyBatis中一次执行多条语句,那应该怎么处理呢?(此处使用MySql数据库) 1、修改数据库连接参数加上allowMultiQueries=true,如:jdbc_url=jdbc:mysql://111.111.111.111:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBeha
asp.net(c#)同时执行多个select语句
        Hashtable hs = new Hashtable();        int j = 0;        SqlConnection con = Infcon.create();        con.Open();        SqlCommand cmd = new SqlCommand();        cmd.Connection = con;        c
设置 mysql ODBC 连接以支持一次执行多条SQL语句
代码中使用 MySQL ODBC 执行类似以下SQL语句(部分代码用...省略了): DELETE FROM ...; INSERT INTO ...; 执行失败,错误信息如下: [42000] 1064 [[MySQL][ODBC 5.1 Driver][mysqld-5.0.77]You have an error in your SQL syntax; check the manu