2010-07-03 25 views
-2
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(); 

} 

u能帮助我的朋友PLZ如何显示一个错误消息,如果在C#中的数据已经被插入到数据库中

+3

帮助?什么?你没有问一个问题。 – Oded 2010-07-03 08:11:21

+1

你会得到什么错误消息? – KroaX 2010-07-03 08:14:37

+0

告诉我们更多关于您插入的表格的信息。它有任何的UNIQUE索引吗?你现在是否有例外,如果是的话,他们说什么? – 2010-07-03 08:18:49

回答

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()方法..

ex;

messagebox.show(msg,APPName); 
+0

如果您发布的是代码或XML,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮(101 010),以良好地格式化和语法突出显示它! – 2010-07-03 11:07:34

0

您可以检查DB当前studentId。如果计数返回> 0,则意味着已经为该学生插入了数据。重点是在这里你可以抛出新的例外“这名学生已经存在”

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 

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

+0

如果您发布的是代码或XML,**请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮(101 010),以更好地格式化和语法突出显示它! – 2010-07-03 11:07:49

1

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

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

相关问题