C#在文本框中从SQL查询中获取结果

时间:2018-02-13 22:55:08

标签: c# sql visual-studio visual-studio-2017

我有以下代码(没有错误),它应该获取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();
            }
        }
    }

3 个答案:

答案 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;