譬如我有个sql语句 insert into table1 (key1,key2,key3) values ("value1","value2","value3")
而这三个value是三个edit框内的文本,在C++中我可以这样构建:CString sql="";
sql.format("insert into table1 (key1,key2,key3) values (\"%s\",\"%s\",\"%s\")", edit1.text,edit2.text,edit3.text);在c#中应该怎样构建? 因为字段特别多有二十几个,如果用+运算符来写实在太麻烦了,中间还要加上引号作为定界符。c#中的字符串似乎也有个format方法,但似乎和C++中的不同,另外还有个stringbuild类,不知此处该如何使用

解决方案 »

  1.   

    建议用StringBuilder可以这样写             StringBuilder sb = new StringBuilder();            sb.AppendLine("INSERT    INTO                                 ");
                sb.AppendLine("    TBL_Bank_Smart(                            ");
                sb.AppendLine("                   BankCode                    ");
                sb.AppendLine("                  ,BankSubCode                 ");
                sb.AppendLine("                  ,BankName                    ");
                sb.AppendLine("                  ,BranchName                  ");
                sb.AppendLine("                  ,Address                     ");
                sb.AppendLine("                  ,Account                     ");
                sb.AppendLine("                  ,IsClean)                    ");
                sb.AppendLine("VALUES(                                        ");
                sb.AppendLine("       '1002'                                  ");
                sb.AppendLine("       ,'" + edit1.text+ "'                    ");
                sb.AppendLine("       ,'" + edit2.text + "'                   ");
                sb.AppendLine("       ,'" + edit3.text + "'                   ");
                sb.AppendLine("       ,'" + lstBankInfo[2] + "'               ");
                sb.AppendLine("       ,'" + lstBankInfo[3] + "'               ");
                sb.AppendLine("       ,False )                                ");            return sb.ToString();
      

  2.   


    public static string updateString = "UPDATE UWS_City SET Latitude = '{0}',Longitude ='{1}' WHERE cityid={2}";
    updateString = string.Format(updateString, geoCode.Latitude, geoCode.Longitude, id);
      

  3.   

     1    string _SqlCommand = "insert into table1 (key1,key2,key3) values ({0},{1},{2}) ";            string _SqlCommandText = String.Format(_SqlCommand, new string[] { "Value1", "Value2", "Value3" });            MessageBox.Show(_SqlCommandText);
     2  StringBuilder _String = new StringBuilder();
                _String.Append("111");  //添加信息
                MessageBox.Show(_String.ToString());
    相当于一个可变的CHAR[]
      

  4.   

    1    string _SqlCommand = "insert into table1 (key1,key2,key3) values ({0},{1},{2}) "; 
         string _SqlCommandText = String.Format(_SqlCommand, new string[] { "Value1", "Value2", "Value3" });2  StringBuilder _String = new StringBuilder(); 
       _String.Append("111"); 
        
      

  5.   

    C#里面不是使用格式化
    而是使用参数的
    就像这样    string commandText = "UPDATE Sales.Store SET Demographics = @demographics "
            + "WHERE CustomerID = @ID;";    using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand command = new SqlCommand(commandText, connection);
            command.Parameters.Add("@ID", SqlDbType.Int);
            command.Parameters["@ID"].Value = customerID;        command.Parameters.AddWithValue("@demographics", demoXml);        try
            {
                connection.Open();
                Int32 rowsAffected = command.ExecuteNonQuery();
                Console.WriteLine("RowsAffected: {0}", rowsAffected);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }