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

问题描述

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中这些数据并没有被存储进去,不知道是为什么...
由于初学也不知道自己写的是不是对的,请大家帮忙指导一下,非常感谢!

解决方案

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

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) + "』记录数被导入");

解决方案二:

Insert是我已经在Database.cs中定义了的:
public int Insert(string XSqlString)
{
int Count = -1;

执行XSqlString的代码在哪里?怎么没看到,没有执行,肯定保存不了

解决方案三:

一、GridView中的数据要写入到数据库,用代码方式实现:
1,ADO.net连接数据
2,Insert数据到数据库
3,Select数据绑定到GridView,搞定。

二、用datatable

//把名为:gridview的DataGridView绑定到名为tbl的DataTable中
DataTable tbl = (DataTable)gridview.DataSource;
string st;
//遍历每一行tbl中的每一行数据
foreach (DataRow row in tbl.Rows)
st= row["字段名"].ToString();//具体字段名
原理分析: 其实dataGridView 中的数据源可以看成是一个表的类型存在。而能保存数据库中的表理所当然想到的是DataTable, 由于dataGridView 中的DataSource是一个对象(object)而DataTable是一个具体的实体,所以当把dataGridView 中的DataSource对象值赋给DataTable 时需要进行强制类型转换。这个主要是父子的关系。

时间: 2025-01-21 12:26:50

asp.net-GridView中有数据,但是我遍历存储的时候发现没有存到数据库中去的相关文章

怎么把数据存到数据库中去呢?(新手)

问题描述 做一个简单的注册及登录模块我想知道账号密码怎么存在SQL去..不太懂希望可以详细的说下 解决方案 解决方案二:sqlhelper解决方案三:存数据库有两种方式:1.ado.net找个sqlhelper数据库操作类,调用就可以了.2.entityframework/nhibernateorm,定义好实体模型以及实体关系,面向对象的方式操作数据库解决方案四:sqlhelperhttp://blog.csdn.net/fengqingtao2008/article/details/17399

(在HTML中)我先将select控件中选取的值取出放入数据库(已经实现),然后我需要查看信息的时候从数据库中取出数据,如何让select控件显示我从数据库中取出的对应的值呢?

问题描述 前台<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>UntitledPage</title></head><body><formid="form1"runat="server"><div><selectid="Sele

在VC++中我想把数据一个个的存到excel中去有什么方法

问题描述 数据不是一起存的,如果想一个一个的村有什么方法么? 解决方案 解决方案二:给你几个方法建议方法1,把excel中新增加的数据先存储在数据库中,最后需要写入excel时,一次写入.方法2,如果每次是有规律的写入,可以先读取excel中的数据行和列.在新的行和列中写入数据.解决方案三:直接写到csv文件FILE*fp;fp=NULL;fp=fopen("c:\1.csv","a+");for(inti=0;i<10;i++){fprintf(fp,&qu

一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。 grant select on testdb.* to common_user@&#039;%&#039; grant insert on testdb.* to common_user@&#039;%&#039; grant update on t

grant 创建.修改.删除 MySQL 数据表结构权限. grant create on testdb.* to developer@'192.168.0.%';   grant alter on testdb.* to developer@'192.168.0.%';   grant drop on testdb.* to developer@'192.168.0.%';  MySQLgrant 操作 MySQL 外键权限. grant references on testdb.* to d

grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利

grant 创建.修改.删除 MySQL 数据表结构权限. grant create on testdb.* to developer@'192.168.0.%';   grant alter on testdb.* to developer@'192.168.0.%';   grant drop on testdb.* to developer@'192.168.0.%';  MySQLgrant 操作 MySQL 外键权限. grant references on testdb.* to d

asp.net中如何把添加的信息自动存到数据库中?

问题描述 usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;pub

.net-用DataSet修改数据库中数据

问题描述 用DataSet修改数据库中数据 请问用DataSet修改数据库中数据: DataSet对象的数据表中的数据复制到DataTable中,之后修改DataTable中的数据,之后直接用SqlDataAdapter提交更新直接提交DataSet(sqld.Update())就可以了吗?这样改变了DataSet中的数据了吗? 求大神解答,初学者 解决方案 DataSet的作用是把数据库中的表中的数据都找出来,并在系统中自动为该数据找个内存存下来,在进行修改的时候只是把内存中的数据修改,并不会

eclipse用servet怎样将数据库中的数据导成xml文件

问题描述 eclipse用servet怎样将数据库中的数据导成xml文件 eclipse用servet怎样将数据库中的数据导成xml文件,求源码,急用,谢谢 解决方案 http://zhidao.baidu.com/link?url=eOfCGfToOHvadTWBtHKQ2jnkH8ZxGbTLasgCs0lbkQTYCrZlh_JwuDt5a-ryg7TvKyG0kIF_6vShzqeWD690Yq 解决方案二: 这个只能有类似代码吧,没有通用的代码,有也需要做配置,毕竟你的表结构是别人不知

VB.net MSchart画图绑定数据库中两列数据。

问题描述 VB.net MSchart画图绑定数据库中两列数据. 请问用MSchart画图时,怎么绑定数据库中两列数据,我用的数据库是access,希望大家帮忙帮忙. 解决方案 无论你用什么数据库,总能取到一个 DataTable吧. chart1.DataBindCrossTable(dt.DefaultView, "分组字段名", "x坐标字段名", "y坐标字段名", "", PointSortOrder.Ascendi