字符串 string aa="a1,a2@,a3,a2@aa,ad,@dd,dc``````"类似这种格式的字符串以@为分隔符
怎样写一个insert 去循环插入数据到数据库里面······
数据库字段create table user
(
userName varchar(20),
userAddress varchar(100)
)插入后效果:
userName userAddress
a1 a2
a3 a2
aa ad
dd dc
怎样写一个insert 去循环插入数据到数据库里面······
数据库字段create table user
(
userName varchar(20),
userAddress varchar(100)
)插入后效果:
userName userAddress
a1 a2
a3 a2
aa ad
dd dc
解决方案 »
- 如何枚举指定计算机上的SQL Server实例?
- ADO.NET读写Excel,需要安装Excel吗?
- winform里如何设置下拉框的默认选项?
- 谁有EXCEL第三方控件能操作EXCEL中的button控件,求助,急...
- 很奇怪的问题啊
- 跳出个提示框后,按确定,如何重定向到另一页面 ?谢谢!
- 关于vb.net转为c#的问题
- datagird不能显示数据库数据???那个高手指导下哈,谢了(附代码)
- C# wpf 使用 winform 控件的问题
- 运算符“==”无法应用于“double”和“<null>”类型的操作数
- 求一个正则表达式
- 请问有什么工具可以对当前的代码进行检测,看当前代码使用到了什么版本的API么?
for(int i=0;i<bb.length;i++)
{
string[] cc=bb.replace(","," ").split(" ");
for(int j=0;j<cc.length;j++)
{
string sql="insert into tablename values("+cc[j][0]+","+cc[j][1];
//插入操作
}
}
for(int i=0;i<bb.length;i++)
{
string[] cc=bb.replace(","," ").split(" ");
for(int j=0;j<cc.length;j++)
{
string sql="insert into tablename values("+cc[j][0]+","+cc[j][1]+");";
//插入操作
}
}
//对于这种应该采用批量方法。如下代码应该比较简洁些
string strBatchInsert = "";
string strInsert = "INSERT INTO TableName VALUES({1},{2});";
string[] bb=aa.split("@");foreach (string str in bb)
{
if (str.Trim() != "")
{
strBatchInsert += string.Format(strInsert, str.Split(','));
}
}//这里做批量插入strBatchInsert
string strInsert = "INSERT INTO TableName(Field1,Field2)"; strInsert += "select "
strInsert +=aa.replace("@,","union all select ");
当然这里面还需要根据sql语句一些进行处理最终的sql语句类似于如下就行insert into Tablename(Field1,Field2)
select 'aa','bb'
union all
select 'aa1','bb1',
===========
修改一下,利用stringbuilder 的append()方法连接字符串效率比string的+= 拼接好的多,把foreach换成for循环,就搞定了。
(
@inputString nvarchar(4000),
@splitChar nvarchar(10)
)
RETURNS @re TABLE(Col varchar(100))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@splitChar+'a')-2
WHILE CHARINDEX(@splitChar,@inputString)>0
BEGIN
INSERT @re VALUES(LEFT(@inputString,CHARINDEX(@splitChar,@inputString)-1))
SET @inputString=STUFF(@inputString,1,CHARINDEX(@splitChar,@inputString)+@splitlen,'')
END
INSERT @re VALUES(@inputString)
RETURN
END insert into Table(XX,XX,...)
select @T,col from dbo.F_StringSplit(@string,',')