【发布时间】:2018-07-28 14:00:43
【问题描述】:
我的数据网格视图有问题。数据不会显示在 datagridview 中。这是我在 winforms 中的代码:
void FillDataGridView()
{
if (sqlCon.State == ConnectionState.Closed)
sqlCon.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter("SearchLog", sqlCon);
sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure;
sqlDa.SelectCommand.Parameters.AddWithValue("@UserID", bunifuMetroTextbox1.Text.Trim());
DataTable dtbl = new DataTable();
sqlDa.Fill(dtbl);
bunifuCustomDataGrid1.DataSource = dtbl;
bunifuCustomDataGrid1.Columns[0].Visible = false;
sqlCon.Close();
}
private void logmanager_Load(object sender, EventArgs e)
{
FillDataGridView();
}
private void bunifuFlatButton1_Click(object sender, EventArgs e)
{
try
{
FillDataGridView();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error Message");
}
}
这是我在存储过程中的查询:
ALTER PROCEDURE [dbo].[SearchLog]
@UserID nchar(10)
AS
SELECT *
FROM User_Activity_Log
WHERE UserID LIKE @UserID+'%'
【问题讨论】:
-
您是否尝试过在外部执行 SQL 命令?我看到你在做 LIKE X%。但请注意,X% 将找到以 X 开头的任何值。请参阅w3schools.com/sql/sql_wildcards.asp 不确定这是否有帮助,但不知道您遇到了什么错误。你试过调试吗?
-
那么,DataTable 呢?里面有什么吗??在这里询问之前使用调试器并始终告诉我们结果..
-
不相关的提示:SqlConnection 和 SqlDataAdapter 是 IDisposable,所以每个都应该在
using块中。另外,您可能想看看can we stop using AddWithValue。 -
这一行是否有任何数据
sqlDa.Fill(dtbl);?
标签: c# sql-server winforms datagridview