Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 若数据库中不存在记录,则插入该记录;若数据库中已有记录,则向用户显示消息_Sql_.net_Windows_C# 4.0_Ado.net - Fatal编程技术网

Sql 若数据库中不存在记录,则插入该记录;若数据库中已有记录,则向用户显示消息

Sql 若数据库中不存在记录,则插入该记录;若数据库中已有记录,则向用户显示消息,sql,.net,windows,c#-4.0,ado.net,Sql,.net,Windows,C# 4.0,Ado.net,如果数据库中不存在记录,我希望插入该记录。如果要插入的数据已存在于数据库中,则应向用户显示一个消息框,说明要插入的数据已存在于数据库中 ALTER PROCEDURE sp_InsertRoles ( @roleName varchar(50), @roleStatus tinyint ) AS BEGIN SET NOCOUNT ON; IF EXISTS(SELECT * FROM tblRole WHERE roleName = @roleName and rol

如果数据库中不存在记录,我希望插入该记录。如果要插入的数据已存在于数据库中,则应向用户显示一个消息框,说明要插入的数据已存在于数据库中

ALTER PROCEDURE sp_InsertRoles
    (
@roleName varchar(50),
@roleStatus tinyint
)
AS
BEGIN
    SET NOCOUNT ON;

    IF EXISTS(SELECT * FROM tblRole WHERE roleName = @roleName and roleStatus=@roleStatus)
    BEGIN
        SELECT 'FALSE'
    END
    ELSE
    BEGIN
        INSERT INTO tblRole
        VALUES(@roleName,@roleStatus)
        SELECT 'TRUE'
    END
END  

string cs=
ConfigurationManager.ConnectionString[“学校管理”系统属性。
设置.schoolManagementDBConnectionString“].ConnectionString;
SqlConnection con=新的SqlConnection(cs);
SqlCommand cmd=新的SqlCommand(“sp_InsertRoles”,con);
cmd.CommandType=CommandType.storedProcess;
cmd.Parameters.AddWithValue(“@roleName”,txtRole.Text);
cmd.Parameters.AddWithValue(“@roleStatus”,ddlStatus.SelectedItem);
con.Open()//连接打开
cmd.ExecuteNonQuery();
int count=Convert.ToInt32(cmd.ExecuteScalar());
如果(计数>0)
{
显示(“角色已退出…”,“失败”,MessageBoxButtons.OK,MessageBoxIcon.Information);
}

否则如果(countUse
Use
为您的数据库对象使用块。这将确保即使出现错误,它们也会被关闭和释放。您将希望在using块之外声明
count
,以便在连接关闭后使用它。您不希望在连接打开时显示消息框。连接是不可用的,并应在
之前立即打开。执行…
并尽快关闭

使用
.Add
方法代替
.AddWithValue
请参阅 和 还有一个: 这是另一个

由于存储过程返回字符串True或False,我将count更改为布尔值,并调整了tne
If

    private void UpdateDatabse()
    { 
        string cs = ConfigurationManager.ConnectionStrings["School_Management_System.Properties.Settings.schoolManagementDBConnectionString"].ConnectionString;
        bool count;
        using (SqlConnection con = new SqlConnection(cs))
        {
            using (SqlCommand cmd = new SqlCommand("sp_InsertRoles", con))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@roleName",SqlDbType.VarChar, 50 ).Value = txtRole.Text;
                cmd.Parameters.Add("@roleStatus",SqlDbType.TinyInt).Value = (int)ddlStatus.SelectedItem;
                con.Open();
                count = Convert.ToBoolean(cmd.ExecuteScalar());
            }
        }
        if (count)
        {
            MessageBox.Show("Role inserted successfully...", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        else
        {
            MessageBox.Show("Role already exits...", "Failed", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
     }

INSERT..FROM..WHERE…
。在
INSERT
之后添加一个
OUTPUT
子句以返回新的ID。如果没有返回值,则行已经存在。您可以在roleName(+roleStatus)上创建一个唯一索引,因此插入相同的内容将引发异常,您可以捕获并通知用户。
    private void UpdateDatabse()
    { 
        string cs = ConfigurationManager.ConnectionStrings["School_Management_System.Properties.Settings.schoolManagementDBConnectionString"].ConnectionString;
        bool count;
        using (SqlConnection con = new SqlConnection(cs))
        {
            using (SqlCommand cmd = new SqlCommand("sp_InsertRoles", con))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@roleName",SqlDbType.VarChar, 50 ).Value = txtRole.Text;
                cmd.Parameters.Add("@roleStatus",SqlDbType.TinyInt).Value = (int)ddlStatus.SelectedItem;
                con.Open();
                count = Convert.ToBoolean(cmd.ExecuteScalar());
            }
        }
        if (count)
        {
            MessageBox.Show("Role inserted successfully...", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        else
        {
            MessageBox.Show("Role already exits...", "Failed", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
     }