请教下SQL语句 这么写

ttrhlhdl 2005-11-01 08:58:50
C# winform开发
想要往数据库里插入数据 插入的字段 和插入的值存放在数组 arraylist a1 和arraylist a2
这个insert into 语句这么写啊 在线等待
...全文
177 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
muxio 2005-11-02
  • 打赏
  • 举报
回复
学习学习~~~~~~~~~``
lyvvvv 2005-11-02
  • 打赏
  • 举报
回复
你仅用两个这样的arraylist想实现这样的功能有些难,因为你还需要知道字段的数据类型等信息,比如
string s1="";
string s2=";

for(int i=0;i<a1.length;i++)
{
s1+=","+a1[i];
s2+=","+a2[i];//这个地方需要根据字段数据类型,作出各种处理,如果字符和数字,日期的转换等等
}

string s="insert into table1 ("+s1+") values ("+s2+")";
triffang 2005-11-02
  • 打赏
  • 举报
回复
呵呵,mark
shilei831115 2005-11-02
  • 打赏
  • 举报
回复
学习ing!
jinjazz 2005-11-02
  • 打赏
  • 举报
回复
用hashtable比arraylist更好些,只要一个列表就可以了

System.Collections.Hashtable ht=new System.Collections.Hashtable();
ht.Add("f1","'v1'");
ht.Add("f2","'v2'");
ht.Add("fn","'vn'");
string strinsert="insert into tablename(";
string strvalue="values(";
foreach(string fName in ht.Keys)
{
strinsert+=fName+",";
strvalue+=ht[fName]+",";
}
strinsert=strinsert.Substring(0,strinsert.Length-1)+") ";
strvalue=strvalue.Substring(0,strvalue.Length-1)+")";
strinsert+=strvalue;
MessageBox.Show(strinsert);
asuan 2005-11-02
  • 打赏
  • 举报
回复
up
jxufewbt 2005-11-02
  • 打赏
  • 举报
回复
楼上的方法不错
singlepine 2005-11-02
  • 打赏
  • 举报
回复
参考这个
http://singlepine.cnblogs.com/articles/255374.html
帮你修改如下
//方法
private static void insertRow(ArrayList a1,ArrayList a2,string TableName,string KeyName)
{
string InsertSql = "Insert into {0}({1}) values({2})";
SqlCommand sqlcom=new SqlCommand();
StringBuilder insertValues = new StringBuilder();
StringBuilder cloumn_list = new StringBuilder();
for (int k=0; k<a1.Count; ++k)
{
System.Data.IDataParameter iparam=new SqlParameter();
iparam.ParameterName = "@"+ a1[k];
iparam.Value = a2[k];
sqlcom.Parameters.Add(iparam);

cloumn_list.Append(a1[k]);
insertValues.Append("@"+a1[k]);

cloumn_list.Append(",");
insertValues.Append(",");
}

string cols=cloumn_list.ToString();
cols=cols.Substring(0,cols.Length -1);

string values=insertValues.ToString();
values=values.Substring(0,values.Length -1);

string sql = string.Format(InsertSql, TableName,cols ,values);
sqlcom.CommandText =sql;
sqlcom.ExecuteNonQuery();
}
//测试调用
private void Page_Load(object sender, System.EventArgs e)
{
ArrayList a1=new ArrayList();
ArrayList a2=new ArrayList();
a1.Add("id");
a1.Add("name");
a2.Add("m");
a2.Add("mm");
string TableName="tablename";
string KeyName="id";

insertRow(a1,a2,TableName,KeyName);
}
//建议用datatable来传递,比arraylist好
zwfhome1 2005-11-01
  • 打赏
  • 举报
回复
string s1=a1[0];
string s2=a2[0];

for(int i=1;i<a1.length;i++)
{
s1+=","+a1[i];
s2+=","+a2[i];
}

string s="insert into table1 ("+s1+") values ("+s2+")";
daxianhaha 2005-11-01
  • 打赏
  • 举报
回复
insert into biao ('"+a1[i]+"')values('"+a2[i]i+"')
shanminmin 2005-11-01
  • 打赏
  • 举报
回复
string s1="";
string s2=";

for(int i=0;i<a1.length;i++)
{
s1+=","+a1[i];
s2+=","+a2[i];
}

string s="insert into table1 ("+s1.substring(1)+") values ("+s2.substring(1)+")";

我说觉得别扭,有个错误:)这次应该没有错误了。
shanminmin 2005-11-01
  • 打赏
  • 举报
回复
string s1="insert into (";
string s2=") values(";

for(int i=0;i<a1.length;i++)
{
s1+=a1[i];
s2+=a2[i];
}

string s=s1+s2+")";

我直接在这写的,应该就这样生成。不保证一次编译成功,但是思路应该这样。

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧