2013-05-12 9 views
0

Я создаю систему входа с использованием C#. Я хочу проверить, является ли имя пользователя, которое пользователь вводит, уже является частью базы данных. Это код, который подключается к адаптеру данных, а затем обновляет его, как только я взял данные из этих флажков.Проверьте, существуют ли данные в базе данных

NorthwindDataSetTableAdapters.CustomersTableAdapter north = new NorthwindDataSetTableAdapters.CustomersTableAdapter(); 
NorthwindDataSet.CustomersDataTable northtable = north.GetData(); 


NorthwindDataSet northwindDataSet1 = new NorthwindDataSet(); 
NorthwindDataSet.CustomersRow newCustomersRow = 
northwindDataSet1.Customers.NewCustomersRow(); 

newCustomersRow.Username = TextBox1.Text.ToString(); 
newCustomersRow.Password = TextBox2.Text.ToString() ; 
newCustomersRow.FirstName = TextBox3.Text.ToString(); 
newCustomersRow.Surname = TextBox4.Text.ToString(); 

northwindDataSet1.Customers.Rows.Add(newCustomersRow); 

north.Update(northwindDataSet1.Customers); 
northwindDataSet1.Customers.AcceptChanges(); 

if (Page.IsValid) 
Response.Redirect("thankyou.aspx"); 

Что такое лучший способ проверить Username поле для дублирования данных?

ответ

0

Почему бы не отметить столбец как первичный ключ или уникальный? Затем вы обрабатываете исключение внутри инструкции try {} catcht {}.

3

Позови меня с ума, но я бы просто сделать что-то вроде (с помощью «щеголеватый»)

string username = ... 
int existingId = connection.Query<int?>(
    @"select top 1 Id from Users where UserName = @username", 
    new { username }).FirstOrDefault(); 
if(existingId.HasValue) { 
     // not available - do something 
}  

Обратите внимание, что есть состояние гонки здесь, так что вы все равно должны иметь уникальное ограничение на самой колонке. Возможно, вы также захотите узнать о чувствительности к регистру: есть ли у Fred то же имя пользователя, что и «fred»?

+0

Это правильно, мы можем проверить, дублируется ли имя пользователя в таблице. – Saravanan

+0

Что такое dapper? –

+0

@ Joshua - инструмент для доступа к данным, который делает его действительно очень простым и эффективным для работы с SQL и объектами без больших сложных ORM или адаптеров. Просто Google «dapper», чтобы найти его, или посмотрите на nuget, если у вас есть vs2012. Это то, что написал stackoverflow.com, чтобы сделать все доступ к данным. –

0

Вы пытались использовать DataTable.Select? Что-то вроде:

var UserFound = NorthTable.Select("UserName = '" + TextBox1.Text + "'"); 
if(UserFound.Length != 0) 
{ 
    // do something... 
}