constr = ConfigurationManager.ConnectionStrings["zsconstr"].ToString();
            SqlConnection conn = new SqlConnection(constr);
            conn.Open();
            try
            {
                foreach (DataRow row in dtSet.Tables[0].Rows)
                {
                    sqlstr = "insert into T_TDD(Ksh,Zkzh,xm) values('" + row["ksh"].ToString() + "','" + row["Zkzh"].ToString() + "','" + row["xm"].ToString() + "')";
                
                //sqlstr = "insert into T_TDD(Ksh,Zkzh,xm) values('" + t + "','" + w + "','" + q + "')";
                //dataconect.sqlexecute_noopen(sqlstr);
                    SqlCommand myComm = new SqlCommand(sqlstr, conn);
                    myComm.ExecuteNonQuery();
                    
                }
                conn.Close();
                
                MessageBox.Show("success");
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.ToString());
            }执行结果提示成功,但打开数据库没有插入有数据。

解决方案 »

  1.   

    myComm.ExecuteNonQuery();
    这句代码的返回值是多少?
      

  2.   

    object pkid = myComm.ExecuteScalar(CommandType.Text,sqlstr,null);
    return  pkid.ToString();没看出来你是怎么判断有没有执行成功的
      

  3.   

    在执行sql语句之前加一个断点调试,
    然后拷贝sql语句到查询分析器中执行。
    如果没问题就不会有问题的。
      

  4.   

    插入执行结束时,我运行以下代码
      sql = "select * from T_TDD";
                DataSet ds = new DataSet();
                ds = dataconect.DataSets(sql);
                    dataGridView1.DataSource = ds.Tables[0].DefaultView;
    dataGridView1中显示出了我刚插入的数据,说明这个插入语句是正确执行了。可是当我大开数据库时里面则没有数据,说明没有保存上,不知道为什么会这样
      

  5.   

    把sql语句拷贝到查询分析器中执行成功。但就是不知道在程序中就是不能保存到数据库中
      

  6.   

    使用 parameter 对象试试
    sqlstr = "insert into T_TDD(Ksh,Zkzh,xm) values(@ksh, @Zkzh, @xm)";
    SqlCommand myComm = new SqlCommand(sqlstr, conn);
    myComm.Parameters.Add("@ksh", ...).Value = ...;
    myComm.Parameters.Add("@Zkzh", ...).Value = ...;
    myComm.Parameters.Add("@xm", ...).Value = ...;int i = myComm.ExecuteNonQuery();
    if (i == 1)
    {
      // 成功了
    }
      

  7.   

    我没有用存储过程,但myConn.ExecuteNonQuery()返回的结果为1说明成功了,但就是数据库中没有数据。太怪了,我也找不到问题所在,请大家看看。
      

  8.   

    debug,追过去看看执行前构造的SQL语句。
      

  9.   

    if(myComm.ExecuteNonQuery()>0)
    {
      return true;
    }
      

  10.   

    不太懂你说的意思,你说 Select * from [tableName]
    有你刚才插入的数据,但是打开数据库又看不到你插入的数据???
    那你肯定插入的和你打开的不是一个数据库。
      

  11.   

    是同一个数据库,
    sqlstr = "insert into T_TDD(Ksh,Zkzh,xm) values('" + 231 + "','" +111  + "','" + 444 + "')";
                        //  row["ksh"].ToString() 
                        //row["Zkzh"].ToString()
                       // row["xm"].ToString()
                    //dataconect.sqlexecute_noopen(sqlstr);
                        SqlCommand myComm = new SqlCommand(sqlstr, conn);                    myComm.ExecuteNonQuery(); 
    改成上面的语句也不成功,重起一下计算机试试。