iak*_*vl2 7 c# sql sql-server datatable
这个对我来说是一个谜,我知道我从其他人那里得到的代码,在我的例子中,它返回的数据表是空的
conSTR 是连接字符串,设置为全局字符串
public DataTable fillDataTable(string table)
{
string query = "SELECT * FROM dstut.dbo." +table;
SqlConnection sqlConn = new SqlConnection(conSTR);
sqlConn.Open();
SqlCommand cmd = new SqlCommand(query, sqlConn);
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
sqlConn.Close();
return dt;
}
Run Code Online (Sandbox Code Playgroud)
编辑1
整点是稍后在tabcontrol的数据网格视图中显示此表,这是在tabcontrol C#中显示多个数据表的问题
这里只显示一个空白的数据网格视图
编辑2
尝试了所有这些,当我尝试显示表时,datagridview为空,具有正确的行数但现在值
Ste*_*eve 29
如果变量table包含无效字符(如空格),则应在变量周围添加方括号.
public DataTable fillDataTable(string table)
{
string query = "SELECT * FROM dstut.dbo.[" + table + "]";
using(SqlConnection sqlConn = new SqlConnection(conSTR))
using(SqlCommand cmd = new SqlCommand(query, sqlConn))
{
sqlConn.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
return dt;
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,对这种代码要非常小心,因为对Sql Injection是开放的.我希望你的表名不是来自用户输入
尝试以下操作:
public DataTable fillDataTable(string table)
{
string query = "SELECT * FROM dstut.dbo." +table;
SqlConnection sqlConn = new SqlConnection(conSTR);
sqlConn.Open();
SqlCommand cmd = new SqlCommand(query, sqlConn);
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
sqlConn.Close();
return dt;
}
Run Code Online (Sandbox Code Playgroud)
希望它有帮助。
| 归档时间: |
|
| 查看次数: |
124066 次 |
| 最近记录: |