在文本框中显示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";
}
}
为什么@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();
}
}