怎样批量写入数据到 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();
}
[解决办法]
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数据库
[解决办法]
Access不支持批量插入
[解决办法]
循环嘛,上面 4 楼的朋友的方法稍加修改就可以啦。