我有以下代码(没有错误),它应该获取SQL查询的结果并将其放在HolEmpName
文本框中,但它仍然是空白的。
public void holidayempname()
{
string query = "SELECT 'Employee Name' FROM dbo.Employees WHERE EmployeeID = @HolidayEmployeeID;";
using (SqlConnection cn = new SqlConnection())
using (SqlCommand cmd = new SqlCommand(query, cn))
{
cmd.Parameters.Add("@HolidayEmployeeID", SqlDbType.UniqueIdentifier).Value = holiday_EmployeeIDTextBox.Text;
cn.Open();
object result = cmd.ExecuteScalar();
cn.Close();
if (result != null)
{
int value = (int)result;
HolEmpName.Text = value.ToString();
}
}
}
表格结构:
雇员:
EmployeeID
Employee Name
假期:
HolidayID
Holiday EmployeeID
当前代码:
public void holidayempname()
{
string query = "SELECT [Employee Name] FROM dbo.Employees WHERE EmployeeID = @HolidayEmployeeID;";
using (SqlConnection cn = new SqlConnection())
using (SqlCommand cmd = new SqlCommand(query, cn))
{
cmd.Parameters.Add("@HolidayEmployeeID", holiday_EmployeeIDComboBox.Text);
//cmd.Parameters.Add("@HolidayEmployeeID", SqlDbType.UniqueIdentifier).Value = holiday_EmployeeIDComboBox.Text;
cn.Open();
object result = cmd.ExecuteReader();
cn.Close();
if (result != null)
{
int value = (int)result;
HolEmpName.Text = value.ToString();
}
}
}
答案 0 :(得分:1)
首先,将代码更改为此类代码。结果将是文字字符串"员工姓名"
string query = "SELECT 'Employee Name' FROM dbo.Employees WHERE EmployeeID = @HolidayEmployeeID";
using (SqlConnection cn = new SqlConnection())
using (SqlCommand cmd = new SqlCommand(query, cn))
{
cmd.Parameters.Add("@HolidayEmployeeID", SqlDbType.UniqueIdentifier).Value = holiday_EmployeeIDTextBox.Text;
cn.Open();
dim result = cmd.ExecuteScalar();
cn.Close();
HolEmpName.Text = result.ToString();
}
答案 1 :(得分:0)
您正在选择文字字符串Employee Name
而不是列。
string query = "SELECT 'Employee Name' FROM dbo.Employees WHERE EmployeeID = @HolidayEmployeeID;";
答案 2 :(得分:-5)
我相信您的参数设置是个问题。
你需要删除@符号,即
cmd.Parameters.Add(" HolidayEmployeeID",SqlDbType.UniqueIdentifier).Value = holiday_EmployeeIDTextBox.Text;