как посчитать выбранные строки по sqldatasource - PullRequest
6 голосов
/ 07 ноября 2010
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 username=@username AND password=@password"
    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
он проверяет имя пользователя и пароль в базе данных и перенаправляет на соответствующую страницу на основе возвращенных строк. У меня проблема с поиском правильной функции в пространстве имен sqldatareader, чтобы он подсчитывал количество затронутых строк Кто-нибудь может сказать мне функцию, которую я должен использовать там? Заранее спасибо.

Ответы [ 7 ]

2 голосов
/ 08 июля 2018

Используйте событие Selected элемента управления SqlDataSource. Событие возникает после завершения операции выбора.

protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
    lblRecordCount.Text = "Record Count: " + e.AffectedRows.ToString();
}
1 голос
/ 01 августа 2013
protected void Button1_Click(object sender, EventArgs e)
{
    DataView d =(DataView) SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    Response.Write(d.Count);
}
0 голосов
/ 24 августа 2013
SELECT Count(*) FROM A1login WHERE username=@username AND password=@password"

Этот код возвращает значение счетчика

0 голосов
/ 23 ноября 2010

Чтобы получить ваши строки, объявите sqlcommand и sqlconnection:

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

В rowsaffected вы получите общее количество выбранных строк

0 голосов
/ 12 ноября 2010

Вы должны прочитать эту страницу

 Namespace:  System.Data 
 Assembly:  System.Data (in System.Data.dll)
0 голосов
/ 07 ноября 2010

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 голосов
/ 07 ноября 2010

Выбор вернет IEnumerable. Вы можете ToList (). Количество на это.

...