yyl_wsx 2015-04-23 06:06 采纳率: 100%
浏览 2087
已采纳

GridView中有数据,但是我遍历存储的时候发现没有存到数据库中去

我设计的数据表testdetail为:
图片说明
GridView中有数据,形式为
图片说明
我现在想把GridView中的Label3的内容(已绑定了数值)存到testdetail的typeid中,
我使用的方法是
DataBase db = new DataBase();
foreach (GridViewRow dr in GridView2.Rows)//保存试卷单选题信息
{
string single = "insert into testdetail(examinationid,typekind,typeid,score) values(" + afterID + ",'单选题'," + int.Parse(((Label)dr.FindControl("Label3")).Text) + "," + int.Parse(txtSingleFen.Text) + ")";
db.Insert(single);
}
Insert是我已经在Database.cs中定义了的:
public int Insert(string XSqlString)
{
int Count = -1;
Open();
SqlCommand cmd = new SqlCommand(XSqlString, Connection);
Count = cmd.ExecuteNonQuery();
Close();
return Count;
}
运行之后发现testdetail中这些数据并没有被存储进去,不知道是为什么...
由于初学也不知道自己写的是不是对的,请大家帮忙指导一下,非常感谢!

  • 写回答

3条回答 默认 最新

  • zzkjliu 2015-04-23 06:47
    关注

    这个代码较完整,可以参考:

    int Djls = 0;
    ds = new DataSet();//DataSet
    string sql = "select gch,tdh,bh,barcode,cc,sl,ys,bzl,zc,printtime from printdata";
    da = new SqlDataAdapter(sql, cn);//SqlDataAdapter
    da.Fill(ds, "printdata");

                SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(da);
    
                for (int i = 0; i < gridView1.RowCount - 1; i++)
               {
    
                    if (gridView1.GetRowCellValue(i, gridView1.Columns[0]).ToString() == "" || gridView1.GetRowCellValue(i, gridView1.Columns[0]).ToString() == null)
                   {
                        MessageBox.Show("工程号不能为空,第" + (i + 1) + "行记录", "信息提示");
                       return;
    
    
                   }
    
               }
    
    
                for (int i = 0; i < gridView1.RowCount - 1; i++)
                {
                    string sql2 = "select gch,tdh,bh,barcode,cc,sl,ys,bzl,zc,printtime from printdata where gch='" + gridView1.GetRowCellValue(i, gridView1.Columns[0]) + "' and tdh='" + gridView1.GetRowCellValue(i, gridView1.Columns[1]) + "' and bh='" + gridView1.GetRowCellValue(i, gridView1.Columns[2]) + "'";
    
                    DataSet ds2 = new DataSet();
                    SqlCommand sqlcmd2 = new SqlCommand(sql2, cn);
    
                    SqlDataAdapter da2 = new SqlDataAdapter(sqlcmd2);
                    da2.Fill(ds2, "printdata");
    
                    DataRow dr = ds.Tables["printdata"].NewRow();
    
                    if (ds2.Tables[0].Rows.Count <= 0)               
    
    
                    {
                        dr["gch"] =gridView1.GetRowCellValue(i, gridView1.Columns[0]).ToString();
                        dr["tdh"] = gridView1.GetRowCellValue(i, gridView1.Columns[1]).ToString();
                        dr["bh"] = gridView1.GetRowCellValue(i, gridView1.Columns[2]).ToString();
                        dr["barcode"] = gridView1.GetRowCellValue(i, gridView1.Columns[0]).ToString() + "-" + gridView1.GetRowCellValue(i, gridView1.Columns[1]).ToString() + "-" + gridView1.GetRowCellValue(i, gridView1.Columns[2]).ToString();
                        dr["cc"] = gridView1.GetRowCellValue(i, gridView1.Columns[3]).ToString();
                        dr["sl"] = gridView1.GetRowCellValue(i, gridView1.Columns[4]).ToString();
                        dr["ys"] = gridView1.GetRowCellValue(i, gridView1.Columns[5]).ToString();
                        dr["bzl"] = gridView1.GetRowCellValue(i, gridView1.Columns[6]).ToString();
                        dr["zc"] = gridView1.GetRowCellValue(i, gridView1.Columns[7]).ToString();
                        dr["printtime"] = DateTime.Now.ToString();
                        ds.Tables[0].Rows.Add(dr);
                        Djls++;
    
    
                    }
                }
                da.Update(ds.Tables["printdata"]);
    
                MessageBox.Show("共有『" + (Djls) + "』记录数被导入");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?