当前位置:编程学习 > C#/ASP.NET >>

请大家帮帮忙,这个插入语句哪里错了

请大家帮帮忙,这个插入语句哪里错了,cmd3不能执行

SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
        
        con.Open();
        string jname = "select jname from journal where jstate='建设中'";
        SqlCommand cmd4 = new SqlCommand("select * from lanmu where jname=(" + jname + ") and lname=@lname", con);
        cmd4.Parameters.AddWithValue("@lname", tname.Text);
       
        SqlDataReader dr = cmd4.ExecuteReader();
        if (dr.Read())
        {
            Response.Write("<script>alert('此栏目已存在!')</script>");
        }
        else
        {

            if (this.tname.Text.Trim() == "")
            {
                Response.Write("<script>alert('栏目名称不能为空!')</script>");
            }

            else
            {
                dr.Close();
                con.Close();
                string lname = this.tname.Text.Trim();
                con.Open();
                SqlCommand cmd3 = new SqlCommand("insert lanmu(jname,lname) values('" + jname + "','" + lname + "')", con);
                //cmd3.Parameters.AddWithValue("@jname", jname); 
                //cmd3.Parameters.AddWithValue("@lname", tname.Text);
                
                cmd3.ExecuteNonQuery();
                con.Close();
                bandgrid(); --------------------编程问答--------------------
con.Close();//这里关了你打算让它自己开? 
--------------------编程问答--------------------
引用 1 楼 zhoukang0916 的回复:
C# codecon.Close();//这里关了你打算让它自己开?


罪过!看错代码了!! --------------------编程问答--------------------  con.Close(); 
 bandgrid();

--------------------编程问答--------------------
引用 3 楼 anglebabyhong 的回复:
con.Close();
bandgrid();

这里错哪了? --------------------编程问答-------------------- string jname = "select jname from journal where jstate='建设中'"; 
 SqlCommand cmd3 = new SqlCommand("insert lanmu(jname,lname) values('" + jname + "','" + lname + "')", con); 又遇到这样写的,你觉得能执行吗??? --------------------编程问答-------------------- 能执行的,在另一个页面这样写,能执行的 --------------------编程问答-------------------- SqlConnection con1111 = new SqlConnection(WebConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString); 

重新定义个,不要用同一个。 --------------------编程问答-------------------- up --------------------编程问答--------------------
cmd3.ExecuteNonQuery(); 
 应该是cmd3.ExecuteScalar() 方法 --------------------编程问答-------------------- 楼主,你同样的代码我试过了,在
我的机器是完全可以执行通过的,成功插入数据!


不过需要注意:
   SqlCommand cmd4 = new SqlCommand("select * from lanmu where jname=(" + jname + ") and lname=@lname", con);  这里的jname=(" + jname + ") 加上‘吧 -》 jname=('" + jname + "')

 另外cmd4.Parameters.AddWithValue("@lname", tname.Text); 
而你下边使用的是string lname = this.tname.Text.Trim();  

再有可能就是你的bandgrid();是不是刷新对了,实际打开数据库看看!!

--------------------编程问答-------------------- 说实话,这个你可以自己调试一下的。 --------------------编程问答--------------------
引用 2 楼 zhoukang0916 的回复:
引用 1 楼 zhoukang0916 的回复:
C# codecon.Close();//这里关了你打算让它自己开?


罪过!看错代码了!!
   — —||
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,