C# 代码中的循环错误

C# 代码中的循环错误,c#,asp.net,C#,Asp.net,我有下面的c代码,我得到编译错误。有人能帮我吗 更新 现在它直接转到循环后的else部分,现在会出现什么错误应该是这样的 for (I = 0; I <= ds.Tables["EMAILS"].Rows.Count - 1; I++) { String email = ds.Tables["EMAILS"].Rows[I]["email"].ToString(); if (email == GlobalData.Email) { Label2.Te

我有下面的c代码,我得到编译错误。有人能帮我吗

更新


现在它直接转到循环后的else部分,现在会出现什么错误

应该是这样的

for (I = 0; I <= ds.Tables["EMAILS"].Rows.Count - 1; I++)
{
    String email = ds.Tables["EMAILS"].Rows[I]["email"].ToString();
    if (email == GlobalData.Email)
    {
        Label2.Text = GlobalData.Email;
        Label1.Text = GlobalData.Name;
        Label3.Text = GlobalData.LastName;
    }
    else
    {
        Response.Redirect("login.aspx");
    }
}
您正在使用而不是[


使用方括号而不是圆括号

for (I = 0; I <= ds.Tables["EMAILS"].Rows.Count - 1; I++)

Tables是一个返回DataTableCollection的参数,而不是一个方法。

我假设您是一名vb开发人员,这就是为什么您使用indexer,而不是您应该使用的[]

for (I = 0; I <= ds.Tables["EMAILS"].Rows.Count - 1; I++)
而且…对于记录,您不应该直接准备并从codebehind调用sql

我应该编辑我的答案

Foreach将使其更易于使用

foreach (DataRow  row in ds.Tables[0].Rows)
{
    //make sure that you have emil column in you datasource
    string email = row["email"].ToString();
}

那么编译错误是什么呢?编译器错误消息:CS1955:Non invocable member'System.Data.DataSet.Tables'不能像方法一样使用。这是运行TimeBooks时的错误,就像有人复制了VB代码一样。另外,for循环中的长I为+1:在旁注中,为循环编写如下内容:forint I=0;Ifor (I = 0; I <= ds.Tables["EMAILS"].Rows.Count - 1; I++)
String email = ds.Tables["EMAILS"].Rows[I].Item["email"];
foreach (DataRow  row in ds.Tables[0].Rows)
{
    //make sure that you have emil column in you datasource
    string email = row["email"].ToString();
}