列如我有个表:字段 姓名,性别
然后我想通过存储过程插入100条数据
姓名 性别
张三 男
李四 女以前写习惯了,N多insert直接执行,现在换成存储语句 。我该如何操作!谢谢,在线等存储行业数据
然后我想通过存储过程插入100条数据
姓名 性别
张三 男
李四 女以前写习惯了,N多insert直接执行,现在换成存储语句 。我该如何操作!谢谢,在线等存储行业数据
解决方案 »
- 一个简单的问题!
- 项目周期
- 关于XmlDocument中SelectNodes的问题
- C# TreeView 节点前的CheckBox怎么实现三种状态!
- 关于C# 远程连接ftp服务器上的ACCCESS数据库的连接字符串问题!
- 大神们看看啊,为什么用openFileDialog打开的图片显示不了
- 怎样得到当前选中列的cell.name
- C#值类型参数和引用类型参数哪个性能高(在不修改原数据的前提下)
- datagrid中double click事件里如何得到当前网格的横纵坐标?50分送!帮帮小弟吧。
- 编码转换的问题(Unicode, ASCII)?
- 请问各位高手,关于MSMQ的问题
- 如何判断网页报没报错
create procedure sp_name()
begin
.........
end
as
bagin
insert into table(name,sex) values (@name,@sex)
end
*********************************************************
就这样。你在页面上写一个循环用这个存储过程就行了
protected void Button2_Click(object sender, EventArgs e)
{
SqlHelp he = new SqlHelp();
//是不是在这里加FOR循环呢?,这样和我直接insert 100句连一起啊有什么区别
int i = he.RunProcedureNonQuery("asd",sqlp("a","b"));
}
public SqlParameter[] sqlp(string name,string pwd)
{
SqlParameter[] par = new SqlParameter[2];
par[0] = new SqlParameter("@uid", name);
par[1] = new SqlParameter("@userPwd", pwd);
return par;
}
第二种方法,就是你把值插入新建一个表中,然后在存储过程中一次查询出来返回一个表,再然后来循环取该表中的值,循环播插入目标表中
CREATE function Get_StrArrayLength
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
CREATE function Get_StrArrayStrOfIndex
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
(
@id int [output] --参数
)as
select * from [表名] --sql语句集
go
(通用查询)
IF OBJECT_ID('存储过程名')>0
DROP PROC 存储过程名
GO
CREATE PROC 存储过程名
@bname NVARCHAR(50), --要查询的表名
@lname NVARCHAR(50), --要查询的列名
@where NVARCHAR(500) --条件(可以为空)
AS
DECLARE @sql NVARCHAR(1000) --sql语句
SET @sql='SELECT '+@lname+' FROM '+@bname+' WHERE 1=1 '+@where
EXEC (@sql)
GO