2012-02-19 19 views
1

この私のストアドプロシージャは次のとおりです。テキストボックスにデータベース値を表示する方法は?

create procedure SP_ShowUse 
    (@employeeName varchar (50)) 
as 
begin 
    select 
     PTS_Employee.Emp_Username, PTS_Approval.Approval_ApprovedBY, 
     PTS_Branches.Branch_BranchName 
    from 
     PTS_Employee, PTS_Approval, PTS_Branches 
    where 
     PTS_Employee.Branch_BranchID = PTS_Branches.Branch_BranchID 
     AND PTS_Employee.Approval_ApprovedID = PTS_Approval.Approval_ApprovedID 
     AND PTS_Employee.Emp_Username = @employeeName 
end 

私は3種類のテキストボックス私はそれを行うことができますどのように

で選択したすべての3つの値を表示したいですか?

答えて

2

ストア:このようなものを使用 -

// define a class to hold the data returned from the stored procedure 
public class SPReturnData 
{ 
    public string EmployeeUsername { get; set; } 
    public string ApprovedBy { get; set; } 
    public string BranchName { get; set; } 
} 

// define a method to call the stored proc and return the data 
public SPReturnData LoadData(string connectionString, string employeeName) 
{ 
    // initialize the structure to be returned 
    SPReturnData result = new SPReturnData(); 

    // setup ADO.NET connection and command 
    using(SqlConnection conn = new SqlConnection(connectionString)) 
    using(SqlCommand cmd = new SqlCommand("dbo.SP_ShowUse", conn)) 
    { 
     // it's a stored procedure 
     cmd.CommandType = CommandType.StoredProcedure; 

     // set up the command's parameters 
     cmd.Parameters.Add("@EmployeeName", SqlDbType.VarChar, 50).Value = employeeName; 

     // open connection, execute command, close connection 
     conn.Open(); 

     // execute reader 
     using(SqlDataReader rdr = cmd.ExecuteReader()) 
     { 
      if(rdr.Read()) 
      { 
       // first column -> employee user name 
       result.EmployeeUserName = rdr.GetString(0); 

       // second column -> approved by name 
       result.ApprovedBy = rdr.GetString(1); 

       // third column -> Branch name 
       result.BranchName = rdr.GetString(2); 
      } 

      rdr.Close(); 
     } 

     conn.Close(); 
    } 

    return result; 
} 

そして、あなたのコードから

は: - ADO.NET - あなたはこのような何かを書くことができ、 "最古" 溶液で行く

+1

@raghu marcsの回答も良いです... – SoftwareNerd

1

あなたは次のいずれかに慣れていますか?

  1. ADO.NET - http://msdn.microsoft.com/en-us/library/h43ks021(v=vs.100).aspx
  2. NHibernateは - http://nhforge.org/Default.aspx
  3. EntityFramework - http://msdn.microsoft.com/en-us/library/bb399572.aspx

ADO.Netは最も古く、あなたがそこに選択したコマンドを実行することができますですが、私は読んですることをお勧めいたします他の2つのオプションのいずれかを使用します。データ

// pass in the connection string (e.g. get it from config or something) 
// and the employee name - get back a "SPReturnData" object with the data items 
SPReturnData data = LoadData("server=.;database=.....;", "Fred Flintstone"); 

// set your textboxes to the values returned  
txtEmployeeName.Text = data.EmployeeName; 
txtApprovedBy.Text = data.ApprovedBy; 
txtBranchName.Text = data.BranchName; 
2

データセットで抽出します。

 SqlConnection con = new SqlConnection(connstring); 
     con.Open(); 
     SqlCommand mycomm=new SqlCommand ("SP_ShowUse",con); 
     mycomm.CommandType=CommandType.StoredProcedure; 
     mycomm.Parameters.Add("@employeeName", SqlDbType.VarChar).Value = "Anil"; 
     SqlDataAdapter showdata = new SqlDataAdapter(mycomm); 
     DataSet ds = new DataSet(); 
     showdata.Fill(ds); 
     txtEmployeename.Text = ds.Tables[0].Rows[0]["Emp_Username"].ToString(); 
     txtBranchName.Text = ds.Tables[0].Rows[0]["Branch_BranchName"].ToString(); 
     txtApprvdby.Text = ds.Tables[0].Rows[0]["Approval_ApprovedBY"].ToString(); 
     binddropdownlist(); 
     con.Close(); 
+0

あなたの助けを借りて...... –

関連する問題