2010-11-07 40 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); 
}