首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎样批量写入数据到 access 多谢

2012-01-22 
怎样批量写入数据到 access 谢谢!我有一个form 是自动生成的,如下:form nameform1 methodpost acti

怎样批量写入数据到 access 谢谢!
我有一个form 是自动生成的,如下:
<form name="form1" method="post" action="2.aspx">
<input name="chengji_002" type="text" id="chengji_002" />
<input name="chengji_003" type="text" id="chengji_003" />
<input name="chengji_004" type="text" id="chengji_004" />
<input name="chengji_005" type="text" id="chengji_005" />
.....
我不确定会生成多少个,但不会起过80个
还有上面出现的 name值 和 id值 是相同的,但我不确定出现的name值、id值是什么

<input type="submit" name="Button1" value="确定提交" id="Button1" />
</form>

请问我如何批量接收?
请问我如何批量写入access ?
请详细一点(C#),刚学,非常感谢!


[解决办法]
给你2种参考方法
1 写个存储过程含id,name两个参数 里面就是一条插入语句
程序中循环控制调用存储过程添加记录

2 先循环将记录放到DataTable中
再用SqlDataAdapter.update()一次性上传到服务器

可能还有更好方法
等待高手
[解决办法]
只要取到,然后使用ADO.NET写入ACCESS就可以了......

详细代码可以找资料参照下就OK了
[解决办法]
1楼...楼主说的是Access...Access不支持SP...
[解决办法]
如果你确定Input内容都是你要提交的可以采用一下方法

用javascript

首先找到所有的Input的名称
var inputArr = document.getElementsByTagName("INPUT");
var allInputName="";
for(i=i;i<inputArr.length;i++)
{
if(allInputName=="")
allInputName=inputArr[i].name;
else
allInputName+=","+inputArr[i].name;
}

这样就能得到所有的Input了,然后将allInputName赋值给一个隐藏的Hidden
document.getElementById("Hidden").value=allInputName;

接下来在服务器端接收处理
首先Request隐藏的值(Hidden)

string allInputName = Request.Forn["Hidden"].ToString();

进行分组处理 string[] ArrInput=allInputName.Split(new char[1]{','});

然后逐个接收
int i=0;
foreach(string InputName in ArrInput)
{
string getInputValue=Request.Form[InputName[i]].ToString();
//
//写数据库
//
i++;
}

[解决办法]
如果name值是相同的话,那request("name")将是一个数组,你循环取其中的值保存到数据库即可。
[解决办法]
foreach(string InputName in ArrInput) 

string getInputValue=Request.Form[InputName].ToString(); 
// 
//写数据库 
// 

写错了,没有i了
[解决办法]
Access用的不多,帮顶了
[解决办法]
多个插入语句以;分割。
insert into ;insert into ;insert into ;insert into ;
[解决办法]

 同意 4 楼的..
[解决办法]
我是好人哦 
我帮楼主写出来了
你的HTML页面不用改,给据你的form的action属性,我写了2.aspx的处理程序。

using System.Data.OleDb;

 protected void Page_Load(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("App_Data/wygl.mdb"));
conn.Open();
OleDbCommand cmd = new OleDbCommand();
for (int i = 0; i < this.Request.Form.Count; i++)
{
string name=Request.Form.GetKey(i).ToString();
string value = Request.Form[i].ToString();




Response.Write(name+":"+value+"<br />");//浏览post过来的数据,去掉


if (name.IndexOf("chengji") != -1)
{

cmd.CommandText = "insert into chengjitable (xuesheng,chengji) values ('" + name + "','" + value + "') ";
cmd.Connection = conn;

try
{
cmd.ExecuteNonQuery();
}
catch(Exception err)
{
Response.Write("出现异常:"+err.Message);
}
}

}


conn.Close();
cmd.Dispose();
conn.Dispose();
}



[解决办法]

C# code
using System.Data.OleDb;  protected void Page_Load(object sender, EventArgs e)     {         OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("App_Data/wygl.mdb"));         conn.Open();         OleDbCommand cmd = new OleDbCommand();         for (int i = 0; i  < this.Request.Form.Count; i++)         {             string name=Request.Form.GetKey(i).ToString();             string value = Request.Form[i].ToString();             Response.Write(name+":"+value+" <br /> ");//浏览post过来的数据,去掉             if (name.IndexOf("chengji") != -1)             {                                  cmd.CommandText = "insert into chengjitable (xuesheng,chengji) values ('" + name + "','" + value + "') ";                 cmd.Connection = conn;                 try                 {                     cmd.ExecuteNonQuery();                 }                 catch(Exception err)                 {                     Response.Write("出现异常:"+err.Message);                 }             }                   }                 conn.Close();         cmd.Dispose();         conn.Dispose();     }
[解决办法]
Access不支持批量插入,只能一个一个一个一个的插入
[解决办法]
有办法的
你把name的名字全部用一样的。不要用name1和name2这样的

用request接收后会是一个数组,循环一条一条插入ACCESS数据库

[解决办法]
C# code
Access不支持批量插入
[解决办法]
循环嘛,上面 4 楼的朋友的方法稍加修改就可以啦。

热点排行