【发布时间】:2017-10-19 11:34:14
【问题描述】:
我正在尝试将数据插入两个不同的表中。
一个是 (father_new),另一个是 (lab5_students),但数据插入到 lab5_student 的表中,并没有显示在father_new 中。
我使用了存储过程,但我不确定我在哪里做错了。
这是我保存父亲记录的代码
private void btn_submit_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(tbox_Fname1.Text) == true || String.IsNullOrEmpty(tbox_fdob.Text) == true || String.IsNullOrEmpty(tbox_fcnic.Text) == true)
{
MessageBox.Show("Name,DOB,Cnic fields are compulsary to fill");
}
{
SqlCommand cmd = new SqlCommand("Lab5task2", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Action", SqlDbType.NVarChar).Value = btn_Psubmit.Text;
cmd.Parameters.Add("@FName", SqlDbType.NVarChar).Value = tbox_Fname1.Text;
cmd.Parameters.Add("@FNum", SqlDbType.NChar).Value = tbox_fnum.Text;
cmd.Parameters.Add("@FOccup", SqlDbType.NVarChar).Value = tbox_occupation.Text;
cmd.Parameters.Add("@FEmail", SqlDbType.NVarChar).Value = tbox_femail.Text;
cmd.Parameters.Add("@FDOB", SqlDbType.DateTime).Value = DateTime.ParseExact(tbox_fdob.Text, "d-M-yyyy", null);
cmd.Parameters.Add("@Foffic_Num", SqlDbType.NChar).Value = tbox_offnum.Text;
cmd.Parameters.Add("@FAge", SqlDbType.NChar).Value = tbox_fage.Text;
cmd.Parameters.Add("@FState", SqlDbType.NVarChar).Value = tbox_Fstate.Text;
cmd.Parameters.Add("@FIncome", SqlDbType.NChar).Value = tbox_fincome.Text;
cmd.Parameters.Add("@FCnic", SqlDbType.NChar).Value = tbox_fcnic.Text;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
这是为了保存学生的记录
private void btn_Ssubmit_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(tbox_sname.Text) == true || String.IsNullOrEmpty(tbox_sfname.Text) == true || String.IsNullOrEmpty(tbox_sid.Text) == true)
{
MessageBox.Show("Name,Father's Name and Id fields are compulsary to fill");
}
else
{
SqlCommand cmd = new SqlCommand("Lab5task2", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Action", SqlDbType.NVarChar).Value = btn_Ssubmit.Text;
cmd.Parameters.Add("@Sname", SqlDbType.NVarChar).Value = tbox_sname.Text;
cmd.Parameters.Add("@Sid", SqlDbType.NChar).Value = tbox_sid.Text;
cmd.Parameters.Add("@Sfather_name", SqlDbType.NVarChar).Value = tbox_sfname.Text;
cmd.Parameters.Add("@Sphone", SqlDbType.NVarChar).Value = tbox_sphone.Text;
cmd.Parameters.Add("@Semail", SqlDbType.NVarChar).Value = tbox_semail.Text;
cmd.Parameters.Add("@Saddress", SqlDbType.NVarChar).Value = tbox_saddress.Text;
cmd.Parameters.Add("@Sage", SqlDbType.NVarChar).Value = tbox_sage.Text;
if (rbtn_female.Text == "Female")
{
cmd.Parameters.Add("@Sgender", SqlDbType.NVarChar).Value = rbtn_female.Text;
}
else if (rbtn_male.Text == "Male")
{
cmd.Parameters.Add("@Sgender", SqlDbType.NVarChar).Value = rbtn_male.Text;
}
cmd.Parameters.Add("@Ssemester", SqlDbType.NVarChar).Value = tbox_ssemester.Text;
cmd.Parameters.Add("@Suniversity", SqlDbType.NVarChar).Value = tbox_suni.Text;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
这是我的存储过程
create procedure [dbo].[lab5task2]
(
-- For Parent data
@FName nvarchar(50)=null,
@FNum nchar(50) =null,
@FOccup nvarchar(50)=null,
@FEmail nvarchar(50)=null,
@FDOB datetime=null,
@Foffic_Num nchar(50)=null,
@FAge nchar(50)=null,
@FState nvarchar(50)=null,
@FIncome nchar(50)=null,
@FCnic nchar(50)=null,
-- For Student data
@Sname nvarchar(50)=null,
@Sid nchar(50)=null,
@Sfather_name nvarchar(50)=null,
@Sphone nvarchar(50)=null,
@Semail nvarchar(50)=null,
@Saddress nvarchar(50)=null,
@Sage nvarchar(50)=null,
@Sgender nvarchar(50)=null,
@Ssemester nchar(50)=null,
@Suniversity nvarchar(50)=null,
@Action nvarchar(50)=null
)
【问题讨论】:
-
按钮 btn_Psubmit 的确切文本是什么(包括大小写,因为在 SP 代码中会有所不同)
-
Steve 在程序中的文本与父亲表的“保存数据”完全相同。问题出在“全部删除”中。感谢@mjwills,我没有注意到 if 语句
标签: c# sql-server database winforms stored-procedures