急!怎么在DataGridView中输入多条数据并添加到数据库中

keke0404 2011-03-04 03:36:51
如题:我想直接在DataGridView中输入多行数据,输完之后直接点提交按钮就可以将数据提交到数据库中,该怎么做?
假设数据表为test。里面字段有name,age。
...全文
456 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
风之影子 2011-03-09
  • 打赏
  • 举报
回复
对DataGridView绑定的内存数据源进行操作,最后判断数据行的状态。一次进行更新入库
danran251689 2011-03-09
  • 打赏
  • 举报
回复
这是我以前做的
  for (int i = ds.Tables[0].Rows.Count; i <= dataGridView1.Rows.Count;i++ )
{
if(ds.Tables[0].Rows.Count+1==dataGridView1.Rows.Count)
{
label3.Text = "没有输入任何数据!";
}
try
{
string unitNumber = txtUnitno.Text.Trim();
string Serialno = dataGridView1.Rows[i].Cells["SerialNumber"].Value.ToString();
string BCode = dataGridView1.Rows[i].Cells["BarCode"].Value.ToString();
string ICode = dataGridView1.Rows[i].Cells["ItemCode"].Value.ToString();
string IType = dataGridView1.Rows[i].Cells["ItemType"].Value.ToString();
string SDate = dataGridView1.Rows[i].Cells["SetDate"].Value.ToString();
string ODate = dataGridView1.Rows[i].Cells["OutDate"].Value.ToString();
string Statu = dataGridView1.Rows[i].Cells["Status"].Value.ToString();
string DeliveryNumber = dataGridView1.Rows[i].Cells["DeliveryNo"].Value.ToString();
string ReturnNo = dataGridView1.Rows[i].Cells["ReturnNo"].Value.ToString();
string DocType = dataGridView1.Rows[i].Cells["DocType"].Value.ToString();
AddSerialNo(unitNumber, Serialno, BCode, ICode, IType, SDate, ODate, Statu, DeliveryNumber, ReturnNo, DocType);
}


catch (Exception ex)
{

}

}
label3.Text = "";
BindGridCiew(unitno,DataName);

声明变量,通过for循环依次将datagridview每一列的值赋给变量,添加完毕,重新绑定就行了。
cuksany 2011-03-09
  • 打赏
  • 举报
回复
使用 dataadapter
Airch 2011-03-07
  • 打赏
  • 举报
回复
点击提交的事件里,循环获取datagridview里的值,然后保存的数据库里
shine_fly 2011-03-04
  • 打赏
  • 举报
回复
 string jscript = string.Empty;
DataSet myDS = new DataSet();
myDS.Tables.Add("CheckInfo");
myDS.Tables[0].Columns.Add("NoteID");
myDS.Tables[0].Columns.Add("GiftsID");
myDS.Tables[0].Columns.Add("StoreID");
myDS.Tables[0].Columns.Add("Count");
myDS.Tables[0].Columns.Add("CreateDate");
myDS.Tables[0].Columns.Add("CreateUser");
myDS.Tables[0].Columns.Add("CheckType");//0为未盘点 1为已盘点
for (int i = 0; i < gvCheck.Rows.Count; i++)
{
CheckBox ck = (CheckBox)gvCheck.Rows[i].FindControl("chkSel");
if (ck.Checked)
{
if (((TextBox)gvCheck.Rows[i].Cells[3].FindControl("txtNum")).Text.Trim() == string.Empty)
{
jscript = "alert('请填写盘点数量!');";
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "onclick", jscript, true);
return;
}
try
{
int Count = int.Parse(((TextBox)gvCheck.Rows[i].Cells[3].FindControl("txtNum")).Text);
int GiftsID = Util.GetInt(((Label)gvCheck.Rows[i].FindControl("lbGiftsID")).Text);

DataRow myRow = myDS.Tables[0].NewRow();
myRow["NoteID"] = DateTime.Now.ToString("yyyyMMdd"); ;
myRow["GiftsID"] = GiftsID;
myRow["StoreID"] = FreeHouse.Shop.Util.GetCookie("StoreID");
myRow["Count"] = Count;
myRow["CreateDate"] = DateTime.Now;
myRow["CreateUser"] = FreeHouse.Shop.Util.GetCookie("StaffID");
myRow["CheckType"] = 1;

myDS.Tables[0].Rows.Add(myRow);
}
catch (Exception ee)
{
jscript = "alert('" + ee.Message.ToString() + "');";
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "onclick", jscript, true);
return;
}
}
}
if (myDS.Tables[0].Rows.Count == 0)
{
jscript = "alert('请正确勾选!');";
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "onclick", jscript, true);
return;
}
if (AddCheckStore(myDS))
{
jscript = "alert('成功提交了 " + myDS.Tables[0].Rows.Count + " 条记录!');";
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "onclick", jscript, true);
Fill();
}
else
{
jscript = "alert('失败!');";
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "onclick", jscript, true);
}
}
shine_fly 2011-03-04
  • 打赏
  • 举报
回复
简单点搞就是把GridView全面加checkbox,判断是否选中,提交选中的就OK,想方便的话直接写点JQ,用户在输入文本的时候checkbox直接选中,只管提交就好了。
Airch 2011-03-04
  • 打赏
  • 举报
回复
你是想写完一行就保存一行还是些完后点击外面的按钮保存?
在外面用循环获取datagridview里的值就可以了,保存方法一样
写完一行就保存的话,判断有没有上一行,有的话就保存

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧