asp.net C#具名引數SqlParameter詳解

來源:互聯網
上載者:User

DBHelper:
         /// <summary>
        /// 執行查詢
        /// </summary>
        /// <param name="sql">有效select語句</param>
        /// <returns>返回SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string sql)
        {
            SqlConnection con = new SqlConnection(constring);
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }
        /// <summary>
        /// 執行查詢帶參數
        /// </summary>
        /// <param name="sql">有效select語句</param>
        /// <returns>返回SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string sql,SqlParameter parameter)
        {
            SqlConnection con = new SqlConnection(constring);
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            cmd.Parameters.Add(parameter);
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }
        /// <summary>
        /// 執行查詢帶參數數組
        /// </summary>
        /// <param name="sql">有效select語句</param>
        /// <returns>返回SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string sql, SqlParameter[] parameters)
        {
            SqlConnection con = new SqlConnection(constring);
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            //AddRange添加數組
            cmd.Parameters.AddRange(parameters);
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }

        /// <summary>
        /// 執行增刪改
        /// </summary>
        /// <param name="sql"></param>
        /// <returns>影響的行數</returns>
        public static int ExecuteNonQuery(string sql)
        {
            using (SqlConnection con = new SqlConnection(constring))
            {
                con.Open();
                SqlCommand cmd = new SqlCommand(sql, con);
                return cmd.ExecuteNonQuery();
            }
        }

        public static int ExecuteNonQuery(string sql,SqlParameter[] parameters)
        {
            using (SqlConnection con = new SqlConnection(constring))
            {
                con.Open();
                SqlCommand cmd = new SqlCommand(sql, con);
                //foreach (SqlParameter item in parameters)
                //{
                //    cmd.Parameters.Add(item);
                //}
                cmd.Parameters.AddRange(parameters);
              
                return cmd.ExecuteNonQuery();
            }
        }
        public static int ExecuteNonQuery(string sql, SqlParameter parameter)
        {
            using (SqlConnection con = new SqlConnection(constring))
            {
                con.Open();
                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.Parameters.Add(parameter);
                return cmd.ExecuteNonQuery();
            }
        }
DAL:
public static int Insert(company model)
        {

            StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into company");
            strSql.Append("(FullName,ShortName,Keywords,Description,Type,Property,Style,Capital,Size,Details,Province,City,Address,Postalcode,Tel,Fax,Mailbox,Url,Link,createtime,Poss,Linkman,Product,Userid)");
            strSql.Append(" values (");
            strSql.Append("@FullName,@ShortName,@Keywords,@Description,@Type,@Property,@Style,@Capital,@Size,@Details,@Province,@City,@Address,@Postalcode,@Tel,@Fax,@Mailbox,@Url,@Link,@Createtime,@Poss,@Linkman,@Product,@Userid)");

            SqlParameter[] parameters = {
             new SqlParameter("@FullName",SqlDbType.VarChar),
             new SqlParameter("@ShortName",SqlDbType.VarChar),
             new SqlParameter("@Keywords",SqlDbType.VarChar),
                                                   。。。。。。。。。。。。。。。。。。
                                                        };
            //new SqlParameter( PARAM_PASSWORD, password== null ? (object)DBNull.Value : (object)password ),

                                                parameters[0].Value = model.FullName;
                                                parameters[1].Value = ""; //model.ShortName;
                                                parameters[2].Value = "";// model.Keywords;
                                                parameters[3].Value = model.Description;
                                                parameters[4].Value = model.Type;
                                                parameters[5].Value = model.Property;
                                                parameters[6].Value = model.Style;
                                                parameters[7].Value = model.Capital;
                                                parameters[8].Value = model.Size;
                                                //如果model.Details為空白的話在執行的時候就會報“需要@Details參數,但未提供該參數”所以不能parameters[9].Value = model.Details;這樣寫
                                                parameters[9].Value = model.Details == null ? (object)System.DBNull.Value : model.Details;
                                                //parameters[9].Value = model.Details;
                                                。。。。。。。。。。。。。。。。。。。
            return DBHelper.ExecuteNonQuery(strSql.ToString(), parameters);
        }

public static List<company> SelectTop5(string type)
        {

            //asp.net SqlParameter關於Like的傳參數無效問題問題在於Sql給參數自動添加了單引號。實際上在Sql,將like的代碼解析成為了like '%'type'%' ",所以要寫成下面的形式
            string sql = "select top 5 * from company where poss='通過' and type like @type order by createtime desc";
            string seach = "%"+type+"%";
            SqlDataReader reader = DBHelper.ExecuteReader(sql, new SqlParameter("@type",ObjToStr(seach)));
    。。。。。。。。。。。。。。。。。。。
}

public static int UpdateComInfo(company model)
        {
          
            string sql11 = "update company set FullName=@FullName,ShortName=@ShortName,Keywords=@Keywords,Description=@Description,[Type]=@Type,[Property]=@Property,Style=@Style,Capital=@Capital,[Size]=@Size,Details=@Details,Province=@Province,City=@City,Address=@Address,Postalcode=@Postalcode,Tel=@Tel,Fax=@Fax,Mailbox=@Mailbox,Url=@Url,Link=@Link,createtime=@Createtime,Poss=@Poss,Linkman=@Linkman,Product=@Product,Userid=@Userid where Id=@Id";

            SqlParameter[] parameters = {
                                        new SqlParameter("@FullName",ObjToStr(model.FullName)),
                                        new SqlParameter("@ShortName",ObjToStr(model.ShortName)),
                                        new SqlParameter("@Keywords",ObjToStr(model.Keywords)),
                                        。。。。。。。。。。。。。。。。。。。

                                       
                                        };
            return DBHelper.ExecuteNonQuery(sql11,parameters);
        }

public static company SelectById(string id)
        {
            string sql = "select * from company where Id=@id";

            SqlDataReader reader = DBHelper.ExecuteReader(sql, new SqlParameter("@id", ObjToStr(id)));
    。。。。。。。。。。。。。。。。
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.