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;
}