如果数据已插入c#中的数据库,如何显示错误消息

时间:2010-07-03 08:10:19

标签: c#

protected void Button2_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection("Data Source=KING;Initial Catalog=semasinter;Integrated Security=True");
    SqlCommand command = new SqlCommand("insert into StudentApplication", conn);
    command.CommandType = CommandType.StoredProcedure;
    command.CommandText = "spinsertstudentapplication";
    command.Parameters.AddWithValue("@Student_id", TextBox1.Text); 
    //command.Parameters.AddWithValue ("@Select_Course", ddlCourse.SelectedValue);
    command.Parameters.AddWithValue("@Select_Country", TextBox4.Text);
    command.Parameters.AddWithValue("@Select_State", TextBox2.Text);
    command.Parameters.AddWithValue("@Select_Franchise", TextBox3.Text);
    command.Parameters.AddWithValue("@Select_Sensei", ddlSensei.SelectedValue);
    command.Parameters.AddWithValue("@Group", TextBox6.Text);
    command.Parameters.AddWithValue("@Enter_Student_Name", TextBox7.Text);
    command.Parameters.AddWithValue("@Enter_Student_Address", TextBox8.Text);
    command.Parameters.AddWithValue("@Students_Father_Name", TextBox9.Text);
    command.Parameters.AddWithValue("@Student_DOB", TextBox10.Text);
    if (RadioButton2.Checked == true)
    {
        command.Parameters.Add("@Gender", SqlDbType.Bit).Value = true;

    }
    else
    {
        command.Parameters.Add("@Gender", SqlDbType.Bit).Value = false;

    }
    command.Parameters.Add("@Enter_Kyu", SqlDbType.NVarChar).Value = TextBox11.Text;       
    conn.Open();
    int rows = command.ExecuteNonQuery();   //// in these line i got a error message   
    conn.Close();

}
你可以帮我朋友PLZ

4 个答案:

答案 0 :(得分:1)

究竟是什么问题 - 您不知道如何显示错误消息?值得一提的是,用用户输入的数据填充主键通常是不好的做法。

老实说,看起来您要求的解决方案是将MessageBox.Show(ex.Message);放入catch块中,但这并不涉及此代码背后的深层问题。此外,这假设您在WinForms或WPF应用程序中,可能不是这种情况。您应该发布更多上下文和更具体的问题......

答案 1 :(得分:0)

您可以使用当前studentId检查数据库。如果计数返回> 0,表示已为该学生插入了数据。关键在这里你可以抛出新的例外“这个学生已经存在”

答案 2 :(得分:0)

ALTER PROCEDURE [dbo].[spCheckDupEmployee]
@empId int,
@empName varchar(100),
@empCode varchar(10),
@Message varchar(1000) OUTPUT

AS
SELECT @Message =''

BEGIN
SELECT * FROM Employee WHERE empName = @empName  AND empId NOT IN(@empId)--AND cmpDeleteFlag = 0
IF @@ROWCOUNT > 0
    BEGIN
    SELECT @Message ='Same Employee Name Exists!'
    RETURN
    END

尝试这种查询来检查重复.. !!

答案 3 :(得分:0)

    ALTER PROCEDURE [dbo].[spCheckDupEmployee]
@empId int,
@empName varchar(100),
@empCode varchar(10),
@Message varchar(1000) OUTPUT

AS
SELECT @Message =''

BEGIN
SELECT * FROM Employee WHERE empName = @empName  AND empId NOT IN(@empId)--AND cmpDeleteFlag = 0
IF @@ROWCOUNT > 0
    BEGIN
    SELECT @Message ='Same Employee Name Exists!'
    RETURN
    END
SELECT * FROM Employee WHERE empCode = @empCode  AND empId NOT IN(@empId)--AND cmpDeleteFlag = 0
IF @@ROWCOUNT > 0
    BEGIN
    SELECT @Message ='Same Employee Code Exists!'
    RETURN
    END
RETURN
END

这会检查重复并发回一条消息 现在将此消息字符串提供给messagebox.show()方法..

离;

messagebox.show(msg,APPName);