当前位置:编程学习 > C#/ASP.NET >>

C#编程,调用

public partial class UserInfo : Form
{
public UserInfo(string sname)
{
this.Name = sname;

InitializeComponent();
}
SqlConnection cn = new SqlConnection();
DataSet ds = new DataSet();
BindingSource myBindingSource;
private void UserInfo_Load(object sender, EventArgs e)
{
Properties.Settings config = Properties.Settings.Default;
string str = config.SqlCon;
cn.ConnectionString = str;

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.CommandText = "UserInfo";
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Connection = cn;

da.Fill(ds, "UserInfo");
myBindingSource = new BindingSource();
myBindingSource.DataSource = ds.Tables["UserInfo"];

this.tbxTureName.DataBindings.Add("Text", myBindingSource, "Name");
this.tbxSex.DataBindings.Add("Text", myBindingSource, "Sex");
this.tbxTitle.DataBindings.Add("Text", myBindingSource, "Title");
this.tbxTel.DataBindings.Add("Text",myBindingSource,"Telephone");
this.dtmpkBirth.DataBindings.Add("Value", myBindingSource, "Birth");
this.tbxGraduated.DataBindings.Add("Text",myBindingSource,"Graduated");
this.tbxClassID.DataBindings.Add("Text",myBindingSource,"ClassName");
this.tbxAddress.DataBindings.Add("Text",myBindingSource,"Address");
this.tbxE_mail.DataBindings.Add("Text",myBindingSource,"E-mail");
Loading();

}
private void Loading()
{
this.tbxTureName.Enabled = false;
this.tbxTitle.Enabled = false;

.....

我要在 private void UserInfo_Load

中怎么写,可以调用 public UserInfo(string sname)
的sname呢?

UserInfo存储过程如下:

alter proc [dbo].[UserInfo]
(
@name nvarchar(20)
)
as
select uif.[Name],uif.Sex,t.Title,uif.Telephone,uif.Birth,uif.Graduated,cif.ClassName,uif.Address,uif.[E-mail]
from webapp.UserInfo uif
join webapp.Title t on uif.TitleID=t.TitleID
join webapp.UserClass uc on uc.UserID=uif.UserID
join webapp.ClassInfo cif on cif.ClassID=uc.AttendingClassID
where [name]=@name

追问:我的string sname是要传递给存储过程的@name,但要在private void UserInfo_Load(object sender, EventArgs e)运行时,调用存储过程 UserInfo,把string sname 传到@name啊!!

这条this.UserInfo(string sname);只是可以运行private void UserInfo_Load(object sender, EventArgs e),调用到它,可是可以把string sname 传到@name吗?

不好意思,学习中,不太懂。。。

答案:1、首先,打开命名空间

using using System.Data.SqlClient;

2、private readonly string connString = "这里放连接字符串";

3、调用存储过程

public void UserInfo(string sName)
{
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand comm = new SqlCommand("存储过程名字",conn);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@name",SqlDbType.NVarChar,50).Value = sName;
conn.Open();
using (SqlDataReader dr = comm.ExecuteReader())
{
//读取数据^
}
}
conn.Close();
conn.Dispose();
}

4、在窗体Load事件调用

private void Form1_Load(object sender, EventArgs e)
{

UserInfo(sName);

}

this.UserInfo(string sname);

上一个:C#编程小问题
下一个:有关C#编程问题 救急

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,