【发布时间】:2018-02-13 22:55:08
【问题描述】:
我有以下代码(没有错误),它应该得到 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();
}
}
}
【问题讨论】:
-
@HolidayEmployeeID;"; 是问题吗?
-
Debug.Writeline the holiday_EmployeeIDTextBox.Text 并查看它的输出。我也怀疑可能没有填充,使您的查询不返回任何结果。
-
@SANM2009 删除它,仍然没有结果。
-
如果您是
SELECT 'Employee Name',那么您的查询结果应该只给您字符串Employee Name,而不是实际的行值 - 这就是您所看到的吗? -
ExecuteScalar返回第一行的第一列。第一列数据类型是整数吗?为什么需要将结果转换为整数然后转换为字符串?为什么不直接做result.ToString()
标签: c# sql visual-studio visual-studio-2017