C# 找不到列
为什么下面的陈述会变成错误C# 找不到列,c#,mysql,sql,.net,C#,Mysql,Sql,.net,为什么下面的陈述会变成错误 static void Main(string[] args) { string connString = "Server=localhost;Port=3306;Database=connection;Uid=root;password=;"; MySqlConnection conn = new MySqlConnection(connString); MySqlCommand command = c
static void Main(string[] args)
{
string connString = "Server=localhost;Port=3306;Database=connection;Uid=root;password=;";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand command = conn.CreateCommand();
command.CommandText = "Select number from user where id=1";
try
{
conn.Open();
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["text"].ToString());
}
Console.ReadLine();
}
这是我的数据库:
数据库名称:连接
表名:用户
number: 18.81
id: 1
您当前正在从数据库中仅选择
number
字段,但正在尝试从结果集中读取text
字段。添加text
字段以选择语句(若要从数据库获取文本):
或者从结果集中读取number
(如果您描述的表结构正确,我认为您需要此解决方案):
使用参数化查询您的查询对SQL注入开放 在sql select语句中,从id=1的用户中选择数字,但在读卡器中,您试图访问错误的文本,请尝试此代码
static void Main(string[] args)
{
string connString = "Server=localhost;Port=3306;Database=connection;Uid=root;password=;";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand command = conn.CreateCommand();
command.CommandText = "Select number from user where id=@Id";
command.Parameters.Add("@Id", SqlDbType.Int);
command.Parameters["@Id"].Value = 1;
try
{
conn.Open();
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["number"].ToString());
}
Console.ReadLine();
}
加载名为number的列,然后搜索名为text的列?但是我不明白返回FALSE的语句是什么。与现在一样,或者您没有ID=1的任何记录,或者此代码将在读取[“text”]代码时引发异常。
Console.WriteLine(reader["number"].ToString());
static void Main(string[] args)
{
string connString = "Server=localhost;Port=3306;Database=connection;Uid=root;password=;";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand command = conn.CreateCommand();
command.CommandText = "Select number from user where id=@Id";
command.Parameters.Add("@Id", SqlDbType.Int);
command.Parameters["@Id"].Value = 1;
try
{
conn.Open();
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["number"].ToString());
}
Console.ReadLine();
}