【问题标题】:Populate listview with data received from SQL query使用从 SQL 查询接收到的数据填充列表视图
【发布时间】:2014-06-28 09:54:43
【问题描述】:

我目前正在尝试使用从数据库表中提取的一些数据填充列表视图;但不确定从哪里开始;我尝试了以下方法:

lstData.DataSource = conn;
lstData.DataBind();

但这会导致错误:

"数据源是无效类型。它必须是 IListSource, IEnumerable 或 IDataSource。 MVC”

我是否使用正确的查询字符串来填充我的列表视图?

谢谢,

卡勒姆

C#代码:

string ssConnectionString = "Server connection";
SqlConnection conn = new SqlConnection(ssConnectionString);
conn.Open();

SqlCommand command = conn.CreateCommand();
command.CommandText = "SELECT Category FROM [dbo].[Category] WHERE CategoryID = '16'";            

command.ExecuteNonQuery();          

string com = command.ExecuteScalar().ToString();
lblSQL.Text = com;
conn.Close();

【问题讨论】:

  • SqlConnection 分配给.DataSource 属性是不合逻辑的。而你的ExecuteNonQuery 毫无意义。它根本没有做任何事情。你到底想做什么?并使用 using 语句 来处理您的数据库连接
  • 我正在尝试通过不同的控件将我从 SqlConnectionString 中提取的信息获取到列表视图中。
  • lstData.DataSource = conn; 错了lstData.DataSource=aDataTable

标签: c# asp.net sql


【解决方案1】:

使用您的代码作为基础,您可能想尝试以下操作:我假设您在“服务器连接”中的连接是真实连接字符串的占位符,并且您知道应该去那里。

string ssConnectionString = "Server connection";
SqlConnection conn = new SqlConnection(ssConnectionString);
conn.Open();
SqlCommand command = conn.CreateCommand();
command.CommandText = "SELECT Category FROM [dbo].[Category] WHERE CategoryID = '16'";     
SqlDataAdapter da = new SqlDataAdapter(command); 
DataTable dataTable;
da.Fill(dataTable);   
lstData.DataSource = dataTable;
lstData.DataBind();
conn.Close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多