C# winform开发 
想要往数据库里插入数据 插入的字段 和插入的值存放在数组 arraylist a1 和arraylist a2
这个insert into 语句这么写啊 在线等待

解决方案 »

  1.   

    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+")";我直接在这写的,应该就这样生成。不保证一次编译成功,但是思路应该这样。
      

  2.   

    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)+")";我说觉得别扭,有个错误:)这次应该没有错误了。
      

  3.   

    insert into biao ('"+a1[i]+"')values('"+a2[i]i+"')
      

  4.   

    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+")";
      

  5.   

    参考这个
    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好
      

  6.   

    用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);
      

  7.   

    你仅用两个这样的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+")";