读书人

一个公共的CS类怎么动态的给它提供参

发布时间: 2012-09-16 17:33:17 作者: rapoo

一个公共的CS类,如何动态的给它提供参数
这个S1.CS类文件代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

/// <summary>
/// 这个类的作用就是查询数据库,并调出数据。但是查询条件是根据引用的文件不同而变化的,也就是说,这里的“InsertID”是在外部设置的。
/// </summary>
public class s1
{
public int InsertID;
public Boolean getChecked;

protected SqlConnection getConnCreate()
{
string getConnettions = System.Configuration.ConfigurationManager.ConnectionStrings["webTextconnetionSting"].ToString();

SqlConnection connet = new SqlConnection(getConnettions);
return connet;

}

public s1()
{
SqlConnection getConn = getConnCreate();
getConn.Open();
SqlCommand selectDataComm = new SqlCommand("selectDataCeshi", getConn);
selectDataComm.CommandType = CommandType.StoredProcedure;
// selectDataComm.Parameters.Add("@getDataValues", SqlDbType.Bit);
//selectDataComm.Parameters["@getDataValues"].Direction = ParameterDirection.Output;
SqlParameter para= new SqlParameter("@getDataValues", SqlDbType.Bit);

para.Direction = ParameterDirection.Output;
selectDataComm.Parameters.Add(para);

SqlParameter para1 = new SqlParameter("@getUsrName", SqlDbType.NVarChar, 50);
para1.Direction = ParameterDirection.Output;
selectDataComm.Parameters.Add(para1);

SqlParameter para2 = new SqlParameter("@getId",SqlDbType.Int);
para2.Direction = ParameterDirection.Input;//外部设置的参数
selectDataComm.Parameters.Add(para2);

//para2.DbType = DbType.Int32;



//Boolean getChecked = Convert.ToBoolean(selectDataComm.Parameters.Add("@getDataValues", SqlDbType.Bit).Value);


selectDataComm.ExecuteNonQuery();
para2.Value = InsertID;

getChecked = Convert.ToBoolean(para.Value);
getConn.Close();

}

}


外部调用文件代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
s1 getSl = new s1();

getSl.InsertID = 1;

chkBoxXianShi.Checked = getSl.getChecked;
}
}
}

错误如下:
过程或函数 'selectDataCeshi' 需要参数 '@getId',但未提供该参数

其中存储过程代码如下:
ALTER PROCEDURE selectDataCeshi
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
@getDataValues bit output,
@getUsrName nvarchar(50) output,
@getId int
AS
select @getDataValues=checkValue,@getUsrName=usrname from ceshiTable where usrid=@getId


RETURN

[解决办法]
你让他接收一个参数数组就像main函数中的args[],或者建一个参数类,该类引用,你只需将这个参数类赋值,传递个公共类

读书人网 >C#

热点推荐