大家平时都用哪种方法写SQL的长语句呢?

解决方案 »

  1.   

    Rs.addnew 
    Rs("Infomation_Title")              = Title 
    Rs("Infomation_TitleAddTime")       = TitleAddTime 
    Rs("Infomation_TitleAuthor")        = TitleAuthor 
    Rs("Infomation_TitleSource")        = TitleSource 
    Rs.update asp中这个不是在写sql语句.如果你想这样的话..可以看一下sqldataadapter.update(datatable dt);或是你可以自己写一个sqlbuilder的类.来构造语句..
    呵呵.
      

  2.   

    下面是个oracle的例子
    OracleConnection conn = new OracleConnection(connectionString);
            OracleCommand cmd = new OracleCommand("INSERT INTO UsersInRoles " +
                    " (Username, Rolename, ApplicationName) " +
                    " Values(:Username, :Rolename, :ApplicationName)", conn);        OracleParameter userParm = cmd.Parameters.Add("Username", OracleType.VarChar, 255);
            OracleParameter roleParm = cmd.Parameters.Add("Rolename", OracleType.VarChar, 255);
            cmd.Parameters.Add("ApplicationName", OracleType.VarChar, 255).Value = ApplicationName;你把oracle改成sql的,冒号改成@就可以了。
      

  3.   


    不好意思,这个确实不是SQL语句,是我描述错了我想描述的是在添加记录的过程中,比如说有15个字段要添加,如果写一行SQL语句就会很长,而且很难读懂,有没有像ASP中的这种类似的方法。可以清楚明了一点。一楼的朋友回答的是:用parameters。 可惜没有参考的代码五楼的朋友有参考代码,但是SQL语句还是会很长,不好读懂。
      

  4.   


    //如果用SqlParameter
    SqlParameter[] parameters = {
    new SqlParameter("@sortid", SqlDbType.Int,4),
    new SqlParameter("@brandid", SqlDbType.Int,4),
    new SqlParameter("@sub", SqlDbType.VarChar,200),
    new SqlParameter("@contect", SqlDbType.Text),
    new SqlParameter("@subname", SqlDbType.VarChar,50),
    new SqlParameter("@subtime", SqlDbType.DateTime),
    new SqlParameter("@Isback", SqlDbType.Int,4),};
    parameters[0].Value = _sortid;
    parameters[1].Value = _brandid;
    parameters[2].Value = _sub;
    parameters[3].Value = _contect;
    parameters[4].Value = _subname;
    parameters[5].Value = _subtime;
    parameters[6].Value = _isback;
      

  5.   

    去找一下 SqlHelper 这个类
    要 Data Access Application Block 中的
    不要petshop中的
      

  6.   

    A. 拼接 SQL 语句
    0.
    // pass  // String.Format 我的最爱 ^_^
    1. string sql = String.Format("INSERT INTO MyTable(Field1, Field2, Field3) VALUES({0}, '{1}', {2})", value1.ToString(), value2, value3.ToString());// 使用 @ 折行
    2. string sql = String.Format(@"
                     INSERT INTO MyTable(Field1, Field2, Field3) 
                                  VALUES({0}, '{1}', '{2}')", 
                                         value1, value2, value3);
    // StringBuilder 效率为先
    using System.Text;
    3. StringBuilder sqlBuidler = new StringBuidler();
    sqlBuilder.Append("INSERT INTO MyTable(Field1, Field2, Field3) ");
    sqlBuilder.Append("VALUES({0}, '{1}', {2})", 
                      value1.ToString(), value2, value3.ToString());
      

  7.   

    B. 过程参数
    // SQLServer
    1.
    string sql = @"
                 INSERT INTO MyTable(Field1, Field2, Field3) 
                 VALUES(@Field1, @Field2, @Field3)";
    // ...
    mySqlCommand.Paramters.AddWithValue("@Field1", value1);
    mySqlCommand.Paramters.AddWithValue("@Field2", value2);
    mySqlCommand.Paramters.AddWithValue("@Field3", value3);
      

  8.   

    用存储过程,传Parameter,又安全又易读
      

  9.   

    如果要易懂,则不直接用Sql语句最易懂....如果用Sql语句又要清晰容易,最简单的是写得跟 SqlServer2005的查询设计器生成的Sql语句那样的格式.如:
    INSERT INTO Mac_Employee(A, B, ......Z)  
    VALUES(@Field1, @Field2, @Field3.....); 另外你的ASP写法里面压根就不是在写Sql语句.....