在文本框中显示SQL表中的查询

时间:2014-05-09 20:00:50

标签: c# sql sql-server

我现在已经纠结了一个多小时,我开始对自己感觉不好。

我想从SQL表中捕获一个值,将其存储在变量中,然后将其返回到文本框中。

可能的相关信息可能是我试图在组合框事件选择中发生这种情况。继承我的代码:

SqlCommand d = new SqlCommand("select @Name from OCRMonitor where OCRServer = @server", ProdrefConn);
d.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = platform.ToString();
d.Parameters.Add("@Server", SqlDbType.VarChar, 50).Value = server.ToString();

SqlDataReader reader = d.ExecuteReader();
reader.Read();

txtName.Text = reader[0].ToString();
reader.Close();

ProdrefConn.Close();

我有这种变化。但是,这是第一个没有破坏代码的人。但是,它只返回列名的值。它在组合框事件更改(服务器和平台全局)上执行此调用:

ProdrefConn.Open();

if (cbServer.SelectedIndex == 0)
{
    server = "Adtukfocr01";
    if (rbNuix.Checked == true)
    {
        platform = "nuixAssigned";
    }
    else if (rbLeverage.Checked == true)
    {
        platform = "leverageAssigned";
    }
}

2 个答案:

答案 0 :(得分:2)

为什么@Name是一个sql参数,它不应该是一个SqlParameter,很明显你是从表中选择一个列值。

SqlCommand d = new SqlCommand("select @Name from OCRMonitor where OCRServer = @server", ProdrefConn);
d.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = platform.ToString();
d.Parameters.Add("@Server", SqlDbType.VarChar, 50).Value = server.ToString();

将此部分代码更改为

SqlCommand d = new SqlCommand("select Name from OCRMonitor where OCRServer = @server", ProdrefConn);
d.Parameters.Add("Server", SqlDbType.VarChar, 50).Value = server.ToString();

SqlDataReader reader = d.ExecuteReader();
reader.Read();

txtName.Text = reader.GetString(0);
reader.Close();

ProdrefConn.Close();

答案 1 :(得分:0)

ProdrefConn.Open();

if (cbServer.SelectedIndex == 0)
{
    server = "Adtukfocr01";
    if (rbNuix.Checked == true)
    {
        Query("nuixAssigned");
    }
    else if (rbLeverage.Checked == true)
    {
        Query("leverageAssigned");
    }
}




private void Query (string TableName)
    {
     SqlCommand d = new SqlCommand("select"+TableName+" from OCRMonitor where OCRServer = @server", ProdrefConn);

    d.Parameters.Add("@Server", SqlDbType.VarChar, 50).Value = server.ToString();

    SqlDataReader reader = d.ExecuteReader();
    using (reader)
    {
      while(reader.Read())
     {
      txtName.Text = reader[0].ToString();
     }
    }


    ProdrefConn.Close();
    }
    }