2013-04-19 4 views
5

Это мой код для отображения/поиска записи в таблице базы данных. Как я могу проверить, существует ли кортеж или нет? Он ищет идентификатор члена. как я должен показать сообщение, если запись не существует?Как проверить, существует ли строка?

string connectionstring = "Server=Momal-PC\\MOMAL;Database=Project;Trusted_Connection=True;"; 
SqlConnection conn = new SqlConnection(); 
conn.ConnectionString = connectionstring; 
conn.Open(); 


    SqlDataAdapter sda = new SqlDataAdapter("Select * from Members where Number = '" + SearchID.Text + "'", conn); 
    DataTable dtStock = new DataTable(); 

    sda.Fill(dtStock); 
    dataGridView1.DataSource = dtStock; 

    conn.Close(); 

ответ

6
if(0 == dtStock.Rows.Count) // does not exist 
+0

Является ли [продолжение] (http://stackoverflow.com/a/34438198/2404470) полезно? – xameeramir

2

Вы можете использовать так:

If(dtStock.Rows.Count > 0) // If dtStock.Rows.Count == 0 then there is no rows exists. 
{ 
    // Your Logic 
} 

См Here & Here. Как пользоваться Dataset и DataTables.

2

Вы можете использовать собственность DataRowCollection.Count.

Получает общее количество объектов DataRow в этой коллекции.

If(0 == dtStock.Rows.Count) 
    Console.WriteLine("There are no rows in that datatable") 
2

Вы можете сделать что-то вроде этого

If(dtStock.Rows.Count > 0) 
    { 
    //code goes here 
    dataGridView1.DataSource = dtStock; 
    } 
    else 
    { 
    //Record not exists 
    } 
2

Этот SQL будет, вероятно, будет намного быстрее, так как он будет возвращать только 0 или 1 строки клиенту, а не каждый совпадающей строки и каждый столбец. Убирайся привычку использовать *

SELECT 1 As X WHERE EXISTS (
    Select 1 from Members where Number = '" + SearchID.Text + "')" 
+0

Хорошо. Я сделаю это. Спасибо. – YehCheez

1
public static int RowCount() 
     { 

      string sqlConnectionString = @" Your connection string"; 
      SqlConnection con = new SqlConnection(sqlConnectionString); 
      con.Open(); 
      SqlCommand cmd = new SqlCommand("SELECT COUNT(*) AS Expr1 FROM Tablename", con); 
      int result = ((int)cmd.ExecuteScalar()); 
      con.Close(); 
      return result; 
    }