【发布时间】:2011-09-03 06:16:46
【问题描述】:
试图做一个记录集,我只想要一列数据,但是这段代码给了我一个错误。我是一个 ASP.NET 新手,谁能帮忙?:
System.Data.SqlClient.SqlException:列名无效 '客户名'。
using (SqlConnection con = new SqlConnection(DB.GetDBConn()))
{
con.Open();
using (IDataReader dr = DB.GetRS("select CustomerName from Customer where CustomerID=" + Customer.CustomerID, con))
{
string CustomerName = "CustomerName";
}
}
String EncCustomerName = Encrypt(CustomerName.Replace(".", "").Replace("-", ""),"1");
问题 #2:如何将数据库内容绑定到 CustomerName 字符串?似乎它只返回“CustomerName”作为 CustomerName 字符串的值。我希望它返回 CustomerName 字符串的数据库数据。帮助?
建议使用 ExecuteScalar,所以我修改了这个请求
using (var con = new SqlConnection(DB.GetDBConn()))
using (var cmdContrib = new SqlCommand("SELECT CustomerName FROM Customer WHERE CustomerID=" + ThisCustomer.CustomerID, con))
{
con.Open();
string CustomerName = cmdContrib.ExecuteScalar();
}
我得到这个错误: "string CustomerName = cmdCust.ExecuteScalar();"
CS0266:无法将类型“object”隐式转换为“string”。存在显式转换(您是否缺少演员表?)
【问题讨论】:
-
尝试直接在 Management Studio 中运行查询“从客户中选择客户名称”。我敢打赌你会发现某种拼写错误(真诚地没有侮辱你的智力,这种事情会发生)。
-
你说得对,我的想法不对。但是现在它不会给我动态数据..它返回“CustomerName”作为CustomerName变量的值,但我想要数据库中的数据,为什么它不返回动态数据?
-
您明确将
CustomerName设置为“客户名称”。您需要从dr访问 CustomerName 列的实际值(类似于string CustomerName = dr["CustomerName"];) -
@jadarnel27:好的,我这样做了,它说.... 错误 CS0266:无法将类型“对象”隐式转换为“字符串”。存在显式转换(您是否缺少演员表?)
-
string CustomerName = dr["CustomerName"].ToString();我在东海岸(美国),现在是凌晨 3 点。我要睡觉了 =) 祝你好运!
标签: asp.net sql-server