SqlParameter 类的困惑

以前仅以为sqlparameter是个普通的数组,查了很多也没弄懂。现在略微懂了

SqlParameter 类 
表示 SqlCommand 的参数,也可以是它到 DataSet 列的映射。无法继承此类。

petshop4.0里有这么一段代码:

 if (cmdParms != null)
            {
                foreach (SqlParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);//把数据集:parameter数据集绑定到cmd对象上,用于多个cmd和sqlparameter对象存在时
            }

 

public SqlParameter (
 string parameterName,
 Object value
)
 


parameterName
要映射的参数的名称。

value
一个 Object,它是 SqlParameter 的值。

 

public SqlParameter (
 string parameterName,
 SqlDbType dbType,
 int size
)
 

 

参数

parameterName
要映射的参数的名称。 存在sqlparameter上的变量名

dbType
SqlDbType 值之一。  数据类型

size
参数的长度。

 

SqlParameter parameter = new SqlParameter("Description", SqlDbType.VarChar, 88);
    parameter.Value = "garden hose";//garden hose数据集的名称

.................................................................................................................................

1.表示层:

 public void Company_News_bind()
    {
        DataSet ds = Com.Com.Getinfo(5, 2, 0, 1, true, true);
        Company_News.DataSource = ds.Tables[0];
        Company_News.DataBind();
}

2.逻辑层:

public static DataSet Getinfo(int num, int Cid, int Did, int Type, bool Top, bool Show)
        {
            string tablename = "Content";
            string list = "col_ID=@Cid and Department_ID=@Did and file_Type=@Type and file_IsShow=@Show";
            SqlParameter[] par = new SqlParameter[4];
            par[0] = new SqlParameter("@Cid", SqlDbType.Int);
            par[1] = new SqlParameter("@Did", SqlDbType.Int);
            par[2] = new SqlParameter("@Type", SqlDbType.Int);
            par[3] = new SqlParameter("@Show", SqlDbType.Bit);
            par[0].Value = Cid;
            par[1].Value = Did;
            par[2].Value = Type;
            par[3].Value = Show;
            return SQLHelper.SQLHelper.Getinfo(tablename, list, num, par);
        }

 3.数据层:

 public static DataSet Getinfo(string tablename, string list, int num, SqlParameter[] parms)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("select top " + num + " * from (");
            sb.Append("select * from " + tablename);
            sb.Append(" where " + list + ") as mm order by file_PostTime DESC");
            SqlConnection conn = CreateConn();
            try
            {
                SqlDataAdapter oda = new SqlDataAdapter(sb.ToString(), conn);
                DataSet ds = new DataSet();
                foreach (SqlParameter op in parms)
                {
                    oda.SelectCommand.Parameters.Add(op);
                }
                oda.Fill(ds);
                return ds;
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                conn.Close();
            }
        }

private  static SqlConnection CreateConn()
        {
            SqlConnection conn = new SqlConnection(sconn);
            conn.Open();
            return conn;
        }

posted @ 2008-10-22 15:49  快乐  阅读(381)  评论(0编辑  收藏  举报