我有一个Winforms应用程序和一个employeeListBox,departmentComboBox和一些显示员工信息的文本框,例如fNameTextbox,lNameTextBox .....
我想通过departmentCombobox选择的值填充employeelistBox并填充employeeListBox中的文本框。我有这个存储过程来选择部门的员工
ALTER PROCEDURE [dbo].[selectEmployee]
@departID int
-- Add the parameters for the stored procedure here
AS
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
declare @ErrorCode int
BEGIN TRANSACTION
if ( @ErrorCode = 0 )
Begin
SELECT
EmpID, firstname, lastName, dateOfBirth, Gender, contactNumber, maritalStatus,
emailAddress, resentAddress, permanentAddress, nationality, bloodGroup,
qualification, Skills, Experience, joiiningdate, probation, departmentID,
Salary, paymentMode, active
FROM Employee
WHERE departmentID = @departID
set @ErrorCode = @@error
End
if ( @ErrorCode = 0 )
COMMIT TRANSACTION
else
ROLLBACK TRANSACTION
return @ErrorCode
并填充列表框我写了这段代码
private void selectEmployee(int departID)
{
string connString = BL.dbConn.ConnStr;
DataSet ds = new System.Data.DataSet();
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "dbo.selectEmployee";
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds);
listBox1.DataSource = ds.Tables[0].DefaultView;
listBox1.ValueMember = "EmpID";
listBox1.DisplayMember = "firstname";
cmd.Parameters.Clear();
conn.Close();
conn.Dispose();
}
我不知道如何将离开传递给存储过程如何从列表框数据集中填充文本框?
答案 0 :(得分:1)
对于传递departmentid你需要创建sql参数并且需要使用sql命令进行附件才能为你工作
你在代码中遗忘的事情是da.SelectCommand = cmd;
指定选择命令
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
try
{
conn.Open();
cmd = new SqlCommand("dbo.selectEmployee", conn );
cmd.Parameters.Add(new SqlParameter("@departID", value);
cmd.CommandType = CommandType.StoredProcedure;
da.SelectCommand = cmd;
da.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (Exception x)
{
MessageBox.Show(x.GetBaseException().ToString(), "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
cmd.Dispose();
conn.Close();
}
用于填充文本框中的值,您可以发布代码或示例您想要做的事情,而不是我可以进一步帮助您
答案 1 :(得分:1)
您需要执行以下操作才能将DepartmentId添加到存储过程:
cmd.Parameters.Add(new SqlParameter("@departID", departID));