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

本文关键字:查询 SQL 显示 文本 | 更新日期: 2023-09-27 18:02:47

我已经摆弄了一个多小时了,我开始觉得自己很糟糕。

我想从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();

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

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

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

为什么@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();
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();
    }
    }