簡體   English   中英

顯示表中的記錄數

[英]Display number of records in a table

我正在嘗試使用C#Windows form顯示(表中)記錄數。 每次顯示為“ 1”作為輸出。 這是代碼。

private void button1_Click(object sender, EventArgs e)
{
    string constr = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Visual Studio/database.mdf;Integrated Security=True";
    SqlConnection con = new SqlConnection(constr);
    con.Open();
    string query= "select Count(*) from Student where Name like '%b%' ";
    SqlCommand cmd = new SqlCommand(query1, con);
    SqlDataReader dr = cmd.ExecuteReader();
    int count = 1;
    while (dr.Read())
        {count++;}
    label1.Text ="Following records : "+count+" ";
}

選擇count(*)將返回一條記錄 ,該記錄的列值包含表中的行數。 您不需要計算結果中的行數,只需從第一行(也是唯一的)中獲取它:

int count = 0;
if (dr.Read()) {
    count = dr.GetInt32(0);
} else {
    // something went horribly wrong. Throw an exception perhaps?
}

如果您需要計算all記錄,則需要從查詢中刪除LIKE過濾器。

您不必使用SqlDataReader - ExecuteScalar就足夠了。 首先,您的代碼應為:

private void button1_Click(object sender, EventArgs e)
{
    string constr = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Visual Studio/database.mdf;Integrated Security=True";
    SqlConnection con = new SqlConnection(constr);
    con.Open();
    string query= "select Count(*) from Student";
    SqlCommand cmd = new SqlCommand(query1, con);
    int count = (int)cmd.ExecuteScalar();
    label1.Text ="Following records : "+count+" ";
}

另外,考慮學習有關using語句的聲明,該語句強制執行釋放和處置資源的良好實踐。

使用數據庫連接,事務和命令時,這很重要。 使用using語句的SqlCommand

我認為您應該使用rownum函數,它將顯示每個記錄的編號以獲取更多信息。請檢查此鏈接http://docs.oracle.com/cd/B12037_01/server.101/b10759/pseudocolumns008.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM