C# 如何通过选择行来改进SQL查询
我想通过选择行来改进我的SQL查询 当我使用C# 如何通过选择行来改进SQL查询,c#,sql-server,C#,Sql Server,我想通过选择行来改进我的SQL查询 当我使用 cmd.CommandText = "SELECT user FROM users"; 在我的代码中,行中有一个错误 FillComboBox(dr["user"].ToString()); 列用户不属于该表 原始代码,这是有效的 public void ReadUsersInfo(string connectionString) { SqlConnection conn = new SqlConnection(connectionStr
cmd.CommandText = "SELECT user FROM users";
在我的代码中,行中有一个错误
FillComboBox(dr["user"].ToString());
列用户不属于该表
原始代码,这是有效的
public void ReadUsersInfo(string connectionString)
{
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM users";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
FillComboBox(dr["user"].ToString());
}
Console.Read();
conn.Close();
}
首先,您正在执行不必要的命令。使用数据适配器时:
- 您不需要在之前打开连接李>
- 甚至创建一个命令李>
- 或者两者都不执行该命令
公共静态void ReadUsersInfo(字符串连接字符串)
{
const string query=“从dbo.users中选择[用户];
使用(var dataTable=new dataTable())
{
使用(var sqlConnection=newsqlconnection(connectionString))
{
使用(var dataAdapter=newsqldataadapter(查询,sqlConnection))
{
dataAdapter.Fill(dataTable);
}
}
foreach(dataTable.Rows中的DataRow dr)
{
Console.WriteLine(dr[“user”].ToString());
}
}
Console.ReadKey();
}
是返回当前用户的数据库用户名的关键字。例如,selectuser
onmydatabase返回dbo
下面的查询将此上下文选择为不带名称的列:
SELECT user FROM users
(No column name)
================
dbo
要返回与关键字同名的列,需要使用括号将其转义:
SELECT [user] FROM users
列用户不属于该表这对我来说似乎是一条非常明确的错误消息。您能显示您的表结构吗?表用户似乎没有名为“user”的列。如果没有SQL中的表结构,这个问题就不完整。请检查您的代码片段与错误没有多大关系。列“user”不属于表“users”,这是一个非常简单的错误。你首先要检查的是,如果有。尝试使用一个简单的“select*fromtablename”。或者您也可以从schema视图检查是否可以访问数据库。等等,ExecuteOnQuery是否返回任何内容?我想改进我的SQL查询。“select*from dbo.users”从dbo.users中选择用户