2013-05-24 3 views
-1

Я хочу проверить, является ли моя таблица (в базе данных SQL) пустой, поэтому, если она есть, я могу поместить кнопку на место, что позволяет пользователю создавать свои первые ... хорошо пользователь, чтобы они могли использовать программу.Как проверить визуальную студию 2010, что таблица пуста в sql

так как я могу проверить, что у пользователя нет учетных записей, то каким образом я могу добавить нового пользователя, имея в виду, что идентификатор является основным ключом и установлен на увеличение на одного пользователя, нужно ли включать его при добавлении расскажите, как это сделать?

summary = Как мне добавить что-то в таблицу + мне нужно включать ID при добавлении его или мне нужно его игнорировать и просто добавлять такие вещи, как имя пользователя и пароль.

во-вторых, как я узнать, если таблица пуста

< < < < < Основная идея я теперь понимаю, именно эта ошибка является проблемой >>>>>

System.Data.SqlClient.SqlCommand CheckNone = new System.Data.SqlClient.SqlCommand(
      "SELECT COUNT(*) from Users", 
      con); 
      con.Open(); 

      System.Data.SqlClient.SqlDataReader Checkreader = CheckNone.ExecuteReader(); 
      if (Checkreader.Read()) 
      { 
       if (0 != Checkreader.GetInt16(Checkreader.GetOrdinal("COUNT(*)"))) 
       { 

это вызывает ошибка ... что-то вроде этого, indexoutofRangeException: COUNT (), так что Я думаю, что это потому, что эта строка неверна, если (0! = Checkreader.GetInt16 (Checkreader.GetOrdinal ("COUNT ()")))

конкретно имя COUNT я попробовал COUNT (*)

+2

У вас есть код, который вы пробовали до сих пор? –

ответ

-1

Я бы в коде попытаться прочитать таблицу пользователей. Что-то вроде этого

ПРИМЕЧАНИЕ: Это псевдо-код:

If not isdbnull(dataobject("nameoffield") 
'''Do certain code 
'''Show Button 
ELSE 
'''The user has an ID 
'''Dont show button 
END IF 

Насколько идентичность идет, добавить столбец идентификаторов в таблицу, и он получает автоматически. в таблице вам нужно создать его так:

имя столбца INT Идентичность (начальное, приращение)

2

во-вторых, как я узнать, если таблица пуста

Изменить SELECT COUNT(*) на SELECT COUNT(*) AS CountOfRecords, затем ExecuteReader или просто оставить заявление как есть, и ExecuteScalar.

3

Я бы с:

System.Data.SqlClient.SqlCommand CheckNone = new System.Data.SqlClient.SqlCommand(
     "IF EXISTS(SELECT * from Users) SELECT 1 ELSE SELECT 0", 
     con); 
     con.Open(); 

     var result = (int)CheckNone.ExecuteScalar(); 
     if (result==0) 
     { 
      //No users 

Это имеет преимущество (по сравнению с использованием COUNT(*)), что после того, как таблицы является заселен, вы не просите сервер подсчитать все строки, когда все вы заботитесь о том, существуют ли строки или нет (т. е. он более четко указывает тот факт, который вы хотите определить).

Это также имеет то преимущество, что мы не открываем, а затем должны очищать читателя, когда все, о чем мы заботимся, это первый столбец первой строки набора результатов - вот для чего построено ExecuteScalar.

0

Попробуйте

con.Open(); 
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * from Users",con); 

DataTable table = new DataTable(); 

adapter.Fill(table); 

if(table.Rows.Count == 0) 
{ 
    //table is empty. 
} 

SqlDataAdapter пример

Смежные вопросы