代码如下: 
 //cmd.CommandText = "insert into t_person(name,age) values(@name,@age)";
 string line = null;
while ((line = sreader.ReadLine()) != null)
                            {
                                string[] strs = line.Split('|');
                                string name = strs[0];
                                int age = Convert.ToInt32(strs[1]);
                                //MessageBox.Show(name + "  " + age);//name age是正确得到的
                                // cmd.Parameters.Clear();
                                //  cmd.Parameters.Add(new SqlParameter("name", name));
                                // cmd.Parameters.Add(new SqlParameter("age", age));

                                cmd.CommandText = "Insert into t_person (name,age) values ('" + name + "','" + age + "')";
//以上两种插入方式都失败
                                cmd.ExecuteNonQuery();
                            }
连接数据库是没有问题的 
语句应该没有问题 表名段号什么的我也检查过了
除此之外,还有什么问题会导致插入失败呢?
实在是找不出来了 求解!!!!!

解决方案 »

  1.   

    t_person 表有设置主键嘛?是不是没设置成自增的啊,这是插入不成功的
      

  2.   

    age 是int型的吗 ? 我怎么看你的数据库中的像char型的
      

  3.   

    //cmd.CommandText = "insert into t_person(name,age) values(@name,@age)";
     string line = null;
    while ((line = sreader.ReadLine()) != null)
      {
      string[] strs = line.Split('|');
      string name = strs[0];
      string age = strs[1];  //MessageBox.Show(name + " " + age);//name age是正确得到的
      // cmd.Parameters.Clear();
    // cmd.Parameters.Add(new SqlParameter("name", name));
    // cmd.Parameters.Add(new SqlParameter("age", age));
      cmd.CommandText = "Insert into t_person (name,age) values ('" + name + "'," + age + ")";//以上两种插入方式都失败
      cmd.ExecuteNonQuery();
      }
      

  4.   

    你定义的这一行  :int age = Convert.ToInt32(strs[1]);
    age是整数型的
    你的这行:cmd.CommandText = "Insert into t_person (name,age) values ('" + name + "','" + age + "')";
    age是字符型的。
    数据库中的age 类型可能是char而不是int的。
    所以先改数据库里的字段类型吧。
      

  5.   

    将sql语句打印出来,然后复制到 查询分析器里去执行。另外,你连错误信息都不贴出来,谁知道是什么错误,猜么?