
你的问题不甚清晰。需要插入的数据来源是在窗体中吗?SQL需要拼接吗?
给你一段代码参考,这段代码是将窗体中dataGridView中的数据循环插入数据库,循环过程中拼接SQL,并执行插入:
//主方法,拼接SQL并执行插入
private int InsertInTo()
{
StringBuilder sqlinsert = new StringBuilder();
StringBuilder sqlvalue = new StringBuilder();
sqlinsertAppend(" insert into 你的表名 ( ");
sqlvalueAppend(" values(");
int num = 0;//该变量用来获取插入多少条数据
for (int i = 0; i < dataGridView1RowsCount; i++)
{
for (int c = 0; c < dataGridView1ColumnsCount; c++)
{
sqlinsertAppend(dataGridView1Columns[c]HeaderText + ",");//赋值列名
sqlvalueAppend("'" + dataGridView1Rows[i]Cells[c]ValueToString() + "'");//赋值列对应的值
}
string sql = sqlinsertToString()Substring(0, sqlinsertLength - 1) + ") " + sqlvalueToString()Substring(0, sqlvalueLength - 1) + ")";//拼接完整插入SQL
num += Insert(sql);//调用插入方法,并接收返回的插入行数
}
return num;
}
//连接数据库并执行SQL
private int Insert(string sql)
{
string connstring = "server=127001\\SQLEXPRESS;database=你的数据库名;uid=用户名;pwd=密码";
SqlConnection conn = new SqlConnection(connstring);
SqlCommand cmd = new SqlCommand(sql, conn);
connOpen();
int n = cmdExecuteNonQuery();//执行
connClose();
cmdDispose();
return n;
}
赋值列名时可以放在循环外只赋值一次。
这个在sqlserver里面不好做,要用到sql语言中的变量并且sql语音没有for不过有while,不过一般数据都不会这样批量输入,毕竟不是每条数据都之间都存在内在的联系。如果你真的想用for语句进行录入的话,你就用visual studio连接你的数据库用c#代码来完成这个活。
DECLARE @id INT,@username NVARCHAR(50),@Pwd NVARCHAR(50)
SET @id=0
SET @username ='kk'
SET @Pwd='12345'
WHILE @i<10000 --10000为你要执行插入的次数
BEGIN
INSERT INTO xx ( id, username,Pwd ) --xx为表名
VALUES ( @id, @username,@Pwd )
SET @i=@i+1
END
利用PHP对数组赋值时下标变量会自动递增的特点,可以很方便用循环将数据存入一个数组。例如:$arr[] = 'a'; 这条语句会将字符a存入数组变量$arr中,如果$arr不存在则会新建一个;若已存在,则将$arr数组的下标变量递增1后存入字符。也就是说,如果已有$arr[0]='a', 那么执行 $arr[] = 'b'; 后,数组其实是进行了$arr[1] = 'b' 的 *** 作。
先检查一下你的数据库 *** 作是否放在循环体里面。如果是在循环里面再检查一下你的表结构中各字段的约束是否有唯一。
你这样的循环插入库效率不高,可以把 values拼接起来,然后一次性插入。
1W条数据量也不是特别大,那就直接读取,然后在foreach入库就可以了
如果数据量非常大的时候,那就分段读取,然后入库~
考虑到php超时,那就网页端打开,第一部分执行完,刷新页面,开始执行第二部分,依次进行
当然,直接在命令行下执行也可以~
<php
$arr = array(
0 => 1100,
1 => '天津市',
2 => 2210,
3 => '沈阳市'
);
$sql = '';
foreach ($arr as $k => $v) {
if ($k % 2 == 0) {
$no = $v;
continue;
} else {
$city = $v;
}
echo "INSERT INTO tablename (no, city) VALUES ($no, $city)";
}
>
结果:
INSERT INTO tablename (no, city) VALUES (1100, 天津市)
INSERT INTO tablename (no, city) VALUES (2210, 沈阳市)
sql语句已经输出的,你query下就行,按照自己的数据套吧
上面那个回答运行不怎么对
把复选框的值作为参数提交,作为循环的次数
$s1 = $_POST['s1'];//获取样品数量
for($i = 1; $i<=$s1; $i++){
$tmp = $_POST['smp'$i]; //这里是对应循环中的文本框name属性
$sql = "insert into 表名(字段) values('样品名',数量)";
mysql_query($sql,$conn);
}
这样写,能看明白么?
用c#sqlserver实现增删改查
using
systemdata;
using
systemdatasqlclient;
//先打开两个类库文件
sqlconnection
con
=
new
sqlconnection();
//
conconnectionstring
=
"server=505-03;database=ttt;user=sa;pwd=123";
conconnectionstring
=
"server=;database=stu;uid=sa;pwd=sa";
conopen();
/
sqldataadapter
对象。
用于填充dataset
(数据集)。
sqldatareader
对象。
从数据库中读取流
后面要做增删改查还需要用到
dataset
对象。
/
sqlcommand
com
=
new
sqlcommand();
comconnection
=
con;
comcommandtype
=
commandtypetext;
comcommandtext
=
"sql的语句";
sqldatareader
dr
=
comexecutereader();//执行sql语句
drclose();//关闭执行
conclose();//关闭数据库
以上就是关于for循环插入数据库的问题全部的内容,包括:for循环插入数据库的问题、如何在SQLserver中利用循环语句插入大量的数据、php将一个长array数组循环插入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)