请教下SQL语句 这么写 C# winform开发 想要往数据库里插入数据 插入的字段 和插入的值存放在数组 arraylist a1 和arraylist a2这个insert into 语句这么写啊 在线等待 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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+")";我直接在这写的,应该就这样生成。不保证一次编译成功,但是思路应该这样。 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)+")";我说觉得别扭,有个错误:)这次应该没有错误了。 insert into biao ('"+a1[i]+"')values('"+a2[i]i+"') 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+")"; 参考这个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好 用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); 你仅用两个这样的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+")"; C# 使用RS_232协议在PC和单片机之间通信 关于自动属性的只读,只写 请各位大侠帮忙☆★C#获取系统颜色后,转换报错★☆----急! \r\n 的正则表达式怎么写 c#打印datagridview中数据,打印机是中崎58-k .Net里用什么技术传输文件比较好?请高手指教! C#里提供的画点函数,新手等待高人指点 ing.... 安装VS.NET前是否要先安装FrontPage或Office? 最后10分问一个ADO.NET的数据库连接问题! 散分 关于程序焦点的问题。。 如何在textbox或者其他web窗体控件中通过回车进入下一个web控件
string s2=") values(";for(int i=0;i<a1.length;i++)
{
s1+=a1[i];
s2+=a2[i];
}string s=s1+s2+")";我直接在这写的,应该就这样生成。不保证一次编译成功,但是思路应该这样。
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)+")";我说觉得别扭,有个错误:)这次应该没有错误了。
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+")";
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好
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);
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+")";