string constr = SqlHelper.sqlcon;//连接数据库 NpgsqlConnection conn = new NpgsqlConnection(constr);//建立连接 NpgsqlCommand sqlCmd = new NpgsqlCommand(); //创建执行sql的对象 try { conn.Open(); // 查询数据库中是否已经存在该用户编号 NpgsqlCommand cmd1 = new NpgsqlCommand("SELECT COUNT(*) FROM login WHERE login_no ='" + yhbh.Text.Trim() + "'", conn); object result = cmd1.ExecuteScalar(); int count = 0; if (result != null && int.TryParse(result.ToString(), out count)) { // 转换成功 } else { // 转换失败 } // 如果已经存在,则抛出一个自定义的异常 if (count > 0) { MessageBox.Show("该用户已经存在!"); } else { string sql = "insert into login values ('" + yhbh.Text.Trim() + "','" + yhmc.Text.Trim() + "','" + yhmm.Text.Trim() + "','" + bm.Text.Trim() + "','" + textBox11.Text.Trim() + "','" + zw.Text.Trim() + "','" + dateTimePicker1.Text.Trim() + "','" + dh.Text.Trim() + "','" + yx.Text.Trim() + "')"; sqlCmd = new NpgsqlCommand(sql, conn); sqlCmd.ExecuteNonQuery(); MessageBox.Show("用户增加成功!", "提示"); } } catch (Exception ex2) { MessageBox.Show("连接数据库发生错误:" + ex2.ToString(), "错误!"); } finally { sqlCmd.Dispose(); conn.Close(); button2_Click_1(this, e); }转化
时间: 2024-02-04 18:01:43 浏览: 21
以下是可能的另一种实现方式:
```
using (NpgsqlConnection conn = new NpgsqlConnection(SqlHelper.sqlcon))
using (NpgsqlCommand cmd = new NpgsqlCommand("SELECT COUNT(*) FROM login WHERE login_no = @login_no", conn))
{
cmd.Parameters.AddWithValue("@login_no", yhbh.Text.Trim());
conn.Open();
int count = (int)cmd.ExecuteScalar();
if (count > 0)
{
MessageBox.Show("该用户已经存在!", "提示");
return;
}
}
using (NpgsqlCommand sqlCmd = new NpgsqlCommand("INSERT INTO login (login_no, login_name, login_pwd, login_dept, login_job, login_nation, login_birthday, login_phone, login_mail) VALUES (@login_no, @login_name, @login_pwd, @login_dept, @login_job, @login_nation, @login_birthday, @login_phone, @login_mail)", conn))
{
sqlCmd.Parameters.AddWithValue("@login_no", yhbh.Text.Trim());
sqlCmd.Parameters.AddWithValue("@login_name", yhmc.Text.Trim());
sqlCmd.Parameters.AddWithValue("@login_pwd", yhmm.Text.Trim());
sqlCmd.Parameters.AddWithValue("@login_dept", bm.Text.Trim());
sqlCmd.Parameters.AddWithValue("@login_job", zw.Text.Trim());
sqlCmd.Parameters.AddWithValue("@login_nation", textBox11.Text.Trim());
sqlCmd.Parameters.AddWithValue("@login_birthday", dateTimePicker1.Text.Trim());
sqlCmd.Parameters.AddWithValue("@login_phone", dh.Text.Trim());
sqlCmd.Parameters.AddWithValue("@login_mail", yx.Text.Trim());
try
{
conn.Open();
int rowsAffected = sqlCmd.ExecuteNonQuery();
if (rowsAffected > 0)
{
MessageBox.Show("用户增加成功!", "提示");
button2_Click_1(this, e);
}
else
{
MessageBox.Show("未能成功插入用户记录!", "提示");
}
}
catch (Exception ex)
{
MessageBox.Show("连接数据库发生错误:" + ex.ToString(), "错误!");
}
}
```
该代码片段首先使用参数化查询查询数据库中是否已经存在该用户编号,如果已经存在,则直接返回并显示提示信息。如果不存在,则使用参数化查询插入一条新的用户记录。另外,该代码片段使用了 `using` 语句块来确保 `NpgsqlConnection` 和 `NpgsqlCommand` 对象被正确释放,并根据情况显示不同的提示信息。