2010-11-07 42 views
4
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 
    Dim LoginChecker As New SqlDataSource() 
    LoginChecker.ConnectionString = ConfigurationManager.ConnectionStrings("A1ConnectionString1").ToString() 
    LoginChecker.SelectCommandType = SqlDataSourceCommandType.Text 
    LoginChecker.SelectCommand = "SELECT username FROM A1login WHERE [email protected] AND [email protected]" 
    LoginChecker.SelectParameters.Add("username", username.Text) 
    LoginChecker.SelectParameters.Add("password", password.Text) 
    Dim rowsAffected As Integer = 0 
    Try 
     rowsAffected = LoginChecker.<what i have to write here> 
    Catch ex As Exception 
     'Server.Transfer("LoginSucessful.aspx") 
    Finally 
     LoginChecker = Nothing 
    End Try 
    username.Text = rowsAffected 
    ' If rowsAffected = 1 Then 
    'Server.Transfer("A1success.aspx") 
    ' Else 
    'Server.Transfer("A1failure.aspx") 
    ' End If 

End Sub 

抓取的行數這是login.aspx.vb
它的代碼檢查數據庫的用戶名和密碼,redirecrs到相應頁面的行的基礎上返回。我在sqldatareader名稱空間中找到正確的函數時遇到問題,因此它計算受影響的行數。任何人都可以告訴我我應該在那裏使用的功能嗎?提前致謝。怎麼算通過SqlDataSource的

回答

0

Select將返回一個IEnumerable。你可以ToList()。 Count就此。

+0

感謝。但是,你可以詳細說明你在說什麼。糾正我,如果我錯了--------目標是計算IEnumerables的數量,以便如何編碼..是它ToList(LoginChecker)。計數 – user481831 2010-11-07 18:24:53

0

SqlDataReader中沒有一個行數屬性來獲取數是做最簡單的方法...

int rowCount = 0; 
if (dr.HasRows) 
{ 
    while (dr.Read()) 
     { 
      rowCount++; 
      dgResults.DataSource = dr; 
      dgResults.DataBind(); 
      dgResults.Visible = true; 
     } 

lblMsg.Text = rowCount.ToString(); 
dr.Close(); 
+0

沒有人有一個錯誤,有沒有什麼像HasRows你可以驗證並告訴我。我是否需要包含任何其他特定的命名空間。 – user481831 2010-11-07 18:49:13

0

擷取您行,聲明sqlcommandsqlconnection

Dim cmd as sqlcommand 
Dim con as new sqlconnection("Ur connection string") 
cmd.connection=con 
cmd.commandtext="SELECT count(username) FROM A1login WHERE [email protected] AND [email protected]" 
Dim rowsAffected As Integer = cmd.executescalar() 

rowsaffected你會得到行總數獲取

1
protected void Button1_Click(object sender, EventArgs e) 
{ 
    DataView d =(DataView) SqlDataSource1.Select(DataSourceSelectArguments.Empty); 
    Response.Write(d.Count); 
}