【发布时间】:2017-09-25 07:08:33
【问题描述】:
我正在制作一个登录应用程序。但是当我在我的应用程序中创建一个新用户时,当用户已经存在于数据库中时,我会收到一个错误。所以我想给我的标签lblOkToe 一个用户已经存在的错误信息。
这是我正在使用的代码:
private void btnVoegToe_Click(object sender, EventArgs e)
{
// Velden leegmaken
string Wacht = txtWacht.Text;
string Login = txtLogin.Text;
//Parameters Declareren
SqlParameter Para1 = new SqlParameter();
SqlParameter Para2 = new SqlParameter();
Para1.ParameterName = "@Log";
Para2.ParameterName = "@WW";
Para1.Value = Login;
Para2.Value = Wacht;
// SQL Connectie opzetten
SqlConnection Conn = new SqlConnection();
Conn.ConnectionString = @"Integrated Security=true;Initial Catalog=Wachtwoord;Data Source=LAPTOP-PDI9B3LP\SCHOOL";
Conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = Conn;
// Alles selecteren van tabel Favorieten
cmd.CommandText = "insert into gebruik values (@Log, @WW)";
//Koppelen van SqlParameter met SqlCommand
cmd.Parameters.Add(Para1);
cmd.Parameters.Add(Para2);
int gelukt = cmd.ExecuteNonQuery();
if (gelukt == 1 && )
{
lblOKToe.Text = "De gebruiker" + Login + " is toegevoegd";
cbKeuze.Items.Add(Login);
txtLogin.Text = "";
txtWacht.Text = "";
}
// Database connectie sluiten
Conn.Close();
}
【问题讨论】:
-
提示:首先使用传递的参数运行 SELECT 查询。如果返回一行,则表示用户存在并显示警告,否则执行 INSERT.
-
无关:您可能不想在 GUI 线程上执行所有这些操作。如果 DB I/O 需要更长的时间,它会使您的应用程序无响应。
-
只需使用 try.. catch。单独的选择存在检查并不能保证插入在多用户环境中不会失败。
-
对于实现IDisposable 接口的类型,总是使用using(...)