2013-03-14 3 views
0

Я делаю форму, где пользователь пишет свое имя пользователя и выбирает из списка кнопок. Перед вставкой мне нужно проверить, существует ли имя пользователя или нет. Стороне сервера код:Cheking дублировать имя и вставить пользователь vb.net

Protected Sub btnSubmit_Click(sender As Object, e As System.EventArgs) Handles btnSubmit.Click 
    'Duplicate username 
    Dim username As String = tbUsername.Text.Trim() 
    Dim tempUser As Byte = CByte(rblDept.SelectedIndex) 
    Dim query1 As String = "Select cUserName FROM Intranet.dbo.Gn_ISCoordinators WHERE cUserName = @cUserName" 

    Dim haha As DataTable = New DataTable() 
    Using adapter = New SqlDataAdapter(query1, ConfigurationManager.ConnectionStrings("IntranetConnectionString").ConnectionString) 
     adapter.Fill(haha) 
     If haha.Rows.Count <> 0 Then 
      lblmessage.Text = "Error! user name is already exist" 
      Return 
     End If 
    End Using 

    'Insert new user 
    Dim query As String = "Insert into Intranet.dbo.Gn_ISCoordinators (cUserName,lDeptUser) Values ('" & username & "'," & tempUser & ")" 
    Dim hehe As DataTable = New DataTable() 
    Using adapter1 = New SqlDataAdapter(query, ConfigurationManager.ConnectionStrings("IntranetConnectionString").ConnectionString) 
     adapter1.Fill(hehe) 
     lblmessage.Text = "User has been added" 
    End Using 
End Sub 

Таким образом, когда пользователь нажмите кнопку он сначала проверить дубликат имя пользователя, если все нормально, то он вставляет строку. Btw ошибка возникает, когда я нажимаю кнопку отправки, и это дало мне это Must declare the scalar variable "@cUserName". на линии adapter.Fill(haha).

Пожалуйста, я хочу знать, что не так с моим кодом. Помогите мне

Заранее спасибо.

ответ

1

Сообщение об ошибке показывает все, что вам нужно знать, чтобы решить эту проблему. Вы используете параметр @cUserName в своем запросе, но он никогда не устанавливается.

Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("IntranetConnectionString").ConnectionString) 
conn.Open() 

Dim query1 As String = "Select cUserName FROM Intranet.dbo.Gn_ISCoordinators WHERE cUserName = @cUserName" 

Dim command As New SqlCommand(query1, conn) 
Dim param As New SqlParameter() 
param.ParameterName = "@cUserName" 
param.Value = username 
command.Parameters.Add(param) 

Using adapter = New SqlDataAdapter(command) 
+0

Я не понял. Не могли бы вы переставить мой код и поместить свой. Я не знаю, где именно я должен поставить ваши строки. – 7alhashmi

+0

Хорошо, я знал, куда его поместить. но дублирование не работает. я имею в виду, что он не проверяет, существует ли имя пользователя или нет. Он просто добавляет все имена пользователей. – 7alhashmi

1

Вы используете параметр @cUserName, но не инициализировали его или не передавали ему значения.

Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("IntranetConnectionString").ConnectionString) 
conn.Open() 

Dim query1 As String = "Select cUserName FROM Intranet.dbo.Gn_ISCoordinators WHERE cUserName = @cUserName" 

Dim command As New SqlCommand(query1, conn) 
command.Parameters.AddWithValue("@cUserName",username) 

Using adapter = New SqlDataAdapter(command) 
+0

Я не понял. Не могли бы вы переставить мой код и поместить свой. Я не знаю, где именно я должен поставить ваши строки. – 7alhashmi

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