(1) int id = int.Parse(this.TextBox2.Text);
      string name = this.TextBox3.Text;
      int mid = int.Parse(this.TextBox4.Text);
      double  lid = double .Parse(this.TextBox5.Text);
      SqlCommand com = con.CreateCommand();
      string sql ="insert into DEPARTMENTS values(@id,@name,@mid,@lid)";
      com.Parameters.Add(new SqlParameter("@id", id));
       com.Parameters.Add(new SqlParameter("@name", name));
       com.Parameters.Add(new SqlParameter("@mid", mid));
       com.Parameters.Add(new SqlParameter("@lid", lid));
    
                
    com.CommandText = sql;
    com.CommandType = CommandType.Text;             
    com.ExecuteNonQuery();
string sql = string.Format("insert into DEPARTMENTS values({0},{1},{2},{3})",id,name ,mid,lid);红色的部分用下面的连接语句会报一个异常,怎么回事?求高手!

解决方案 »

  1.   

    在此上下文中不允许使用名称 "wqe"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。 上面是说的异常信息,上面的wqe,我随意输入的,是第二个变量,其他的没问题.
      

  2.   

    学一下断点调试,看各变量的值怎样...
    string sql ="insert into DEPARTMENTS values(@id,@name,@mid,@lid)";
    string sql = string.Format("insert into DEPARTMENTS values({0},{1},{2},{3})",id,name ,mid,lid);
    是不是定义了两次sql?
      

  3.   

    还是谢谢你们啊,我加断点调试看了一下,发现是我的values({0},{1},{2},{3})",id,name ,mid,lid);
    里面的参数没有用单引号引起来,还是我的sql语句不砸实,还是谢谢各位啊!
    我这样就好了,呵呵  values(‘{0}’,‘{1}’,‘{2}’,‘{3}’)",id,name ,mid,lid);