出现错误:“在位置0处没有任何行”
  string MyConn = "server=192.168.1.106;uid=sa;pwd=;database=Licai;Trusted_Connection=no";
            SqlConnection conn = new SqlConnection(MyConn);
            DataSet MyDataSet = new DataSet();
            conn.Open();
            System.Text.StringBuilder strSql = new System.Text.StringBuilder();
            int mainID = Convert.ToInt32(MyDataSet.Tables[0].Rows[0]["Main_ID"]);//<-------就在这报的错
            strSql.Append("insert into Pocket_book (");
             if (rdoIncome.Checked) 
            {
                strSql.Append(" Main_ID");
                strSql.Append(" IO_Project");
                strSql.Append(" ,IO_date");
                strSql.Append(" ,Input_Money");
                strSql.Append(" ,Project_Explain");
                strSql.Append(" ,Delete_Mark");
                strSql.Append(" )values( ");
                strSql.Append(mainID + 1);
                strSql.Append(" ,'" + cboIncome.Text + "'");
                strSql.Append(" ,'" + dtpkDate.Value + "'");
                 strSql.Append(" ,'" + txtInMoney.Text + "'");
                strSql.Append(" ,'" + txtExplain.Text + "'");
                strSql.Append(" ,'0'");
                strSql.Append(" )");Main_ID在数据库中是主键
本人菜鸟,求各位帮忙看下,在线等,谢谢了!!!!!!

解决方案 »

  1.   

    看你的意思是把数据库中Main_ID的最大值取出来,+1后插入新数据。但是你里只有插入的代码,没有取出来的代码啊。
      

  2.   

    前面DataSet MyDataSet = new DataSet();只是创建了一个空DataSet,里面一个DataTable都没有,怎么能用MyDataSet.Tables[0]?另外根据报错的信息,说明你的Tables[0]里没有行。
      

  3.   

    MyDataSet.Tables[0].Rows[0]["Main_ID"]
    Main_ID 是哪里来的?
      

  4.   

    这样取mainIDstring SQL = @"SELECT MAX [Main_ID] FROM [Pocket_book]";
    SqlCommand cmd = new SqlCommand(SQL, conn);
    int mainID = Convert.ToInt32(cmd.ExecuteScalar());另外strSql.Append(" IO_Project")应该少了个逗号
      

  5.   

    都没有查询出来到MyDataSet.Tables[0],肯定没数据行了
    你得先SQL数据至MyDataSet.Tables[0]