不能对类型为'system.data.datatable'的表达式应用索引
本文关键字:表达式 应用 索引 datatable data 类型 不能 system | 更新日期: 2023-09-27 18:09:37
我在SQL Server 2008中有一个Login
表,我想检查dataccolumn中的有效用户。
我试图通过索引从dataccolumn检索值,但得到了错误…
不能对'system.data.datatable'类型的表达式应用索引。
代码如下:
string connectionString = "Data Source=.''SQLEXPRESS;Initial Catalog=DRZare;Integrated Security=true;";
SqlConnection LOGINCONNECTION = new SqlConnection(connectionString);
string commandText = "select * from Login where UserName = @User and Password = @Pass";
SqlCommand cmdlogin = new SqlCommand(commandText, LOGINCONNECTION);
cmdlogin.Parameters.AddWithValue("@User", TextBox5.Text);
cmdlogin.Parameters.AddWithValue("@Pass",TextBox6.Text);
LOGINCONNECTION.Open();
DataTable logintable = new DataTable();
logintable.Load(cmdlogin.ExecuteReader());
for (int i = 0; i < logintable.Rows.Count; i++ )
{
User = Convert.ToString(logintable[i]["UserName"]);
string Pass = Convert.ToString(logintable[i]["Password"]);
}
错误信息明确指出问题所在。你不能在DataTable上使用indexer。但是你可以在DataRow中使用它。
更改为:
foreach (DataRow row in loginTable.Rows )
{
string User = Convert.ToString(row["UserName"]);
string Pass = Convert.ToString(row["Password"]);
}
谢谢你的帮助。代码被修改成这样,现在可以正常工作了。
string User = Convert.ToString(logintable.Rows[i]["UserName"]);
string Pass = Convert.ToString(logintable.Rows[i]["Password"]