将记录插入MS Access数据库 [英] Insert Record into MS Access Database

查看:103
本文介绍了将记录插入MS Access数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好

我是.NET的新手,并创建一个项目Demo来使用ADO.NET在MS Access中插入新记录.
以下是我的代码.

Hello All

I am new in .NET and create a project Demo to insert new record in MS Access using ADO.NET.
Following is my code.

OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database1.mdb");
                con.Open();
                string str = "insert into FormA_Table(Name1,Fathers_Name,Husband_Name,DOB,Address_Of_Res,Address_of_practice,Medical_qualification,Degree_Qualification,year_of_passing,Name_of_institute,Reg_no,Reason_Name_Date_Rule,Revised_date,ReEntry_date,Additional_qualification,Additional_Qualification1,Additional_Qualif_Date,emp_info,Address_of_Employer,Remarks,Sign_Registrar,Reg_date,Intern_From,Intern_To,Revision_Varified)values(''" + txtName.Text + "'',@fname,@hname,@dob,@res_add,@p_add,@m_qualif,''" + txtQualification.Text + "'',@year,''" + txtInstitute.Text + "'',''" + txtRegistration.Text + "'',''" + txtReason.Text + "'',@revdate,@reentrydate,@add_qualif,''" + txtAddQualification.Text + "'',@q_date,@e_type,@e_add,''" + txtRemarks.Text + "'',@na,@reg_date,@i_from,@i_to,@rev)";
             
                OleDbCommand cmdInsert = new OleDbCommand(str, con);
                cmdInsert.Parameters.Add("@fname", OleDbType.VarChar);
                cmdInsert.Parameters["@fname"].Value = FName;
                cmdInsert.Parameters.Add("@hname", OleDbType.VarChar);
                 cmdInsert.Parameters["@hname"].Value = HName;
                
                cmdInsert.Parameters.Add("@dob", OleDbType.VarChar);
                cmdInsert.Parameters["@dob"].Value = DOB1;
                
                cmdInsert.Parameters.Add("@res_add", OleDbType.VarChar);
                cmdInsert.Parameters["@res_add"].Value = Res_Address; ;
                
                cmdInsert.Parameters.Add("@p_add", OleDbType.VarChar);
                cmdInsert.Parameters["@p_add"].Value = Pra_Address;
                cmdInsert.Parameters.Add("@m_qualif", OleDbType.VarChar);
                cmdInsert.Parameters["@m_qualif"].Value = med_qualif;
                cmdInsert.Parameters.Add("@year", OleDbType.Integer);
                cmdInsert.Parameters["@year"].Value = year;
                cmdInsert.Parameters.Add("@rev_date", OleDbType.VarChar);
                cmdInsert.Parameters["@rev_date"].Value = RevisedDate1;
                cmdInsert.Parameters.Add("@reentrydate", OleDbType.VarChar);
                cmdInsert.Parameters["@reentrydate"].Value = reEntry1;
                cmdInsert.Parameters.Add("@add_qualif", OleDbType.VarChar);
                cmdInsert.Parameters["@add_qualif"].Value = add_qualType;
                cmdInsert.Parameters.Add("@q_date", OleDbType.VarChar);
                cmdInsert.Parameters["@q_date"].Value = qualifDate1; ;
                cmdInsert.Parameters.Add("@e_type", OleDbType.VarChar);
                cmdInsert.Parameters["@e_type"].Value = emp_type;
                cmdInsert.Parameters.Add("@e_add", OleDbType.VarChar);
                cmdInsert.Parameters["@e_add"].Value = Emp_add;
                cmdInsert.Parameters.Add("@na", OleDbType.VarChar);
                cmdInsert.Parameters["@na"].Value = NA;
                cmdInsert.Parameters.Add("@reg_date", OleDbType.VarChar);
                cmdInsert.Parameters["@reg_date"].Value = Reg_Date1;
                cmdInsert.Parameters.Add("@i_from", OleDbType.VarChar);
                cmdInsert.Parameters["@i_from"].Value = InternFrom;
                cmdInsert.Parameters.Add("@i_to", OleDbType.VarChar);
                cmdInsert.Parameters["@i_to"].Value = InternTo;
                cmdInsert.Parameters.Add("@rev", OleDbType.VarChar);
                cmdInsert.Parameters["@rev"].Value = revised1;
               int i= cmdInsert.ExecuteNonQuery();
                if (i > 0)
                    MessageBox.Show("New Record Added successfuly");
                else
                    MessageBox.Show("Fail to save new record");
                con.Close();
                cmdInsert.Dispose();



没问题,它也显示一条消息"Record added successfuly",但它没有在数据库中添加任何记录.
请帮我完成我的项目.



谢谢.



There is no any problem and it aslo shows a message "Record added successfuly" but it does not add any record in database.
please help me to so that I can complete my project.



Thanks.

推荐答案

您的代码似乎没有什么真正的问题.

但是,我建议正确添加所有参数,而不是将其中一些参数直接连接到querystring中.

您可能还想将实际打开位置移到实际需要的位置,而不是在仍然忙于其他工作时将其打开.这在并发情况下尤其重要,因为在这种情况下它可能更引人注意.

使用using可以很好地完成对象的正确创建和处理.下面是一些示例代码.

It seems like there is nothing really wrong with your code.

I would however suggest to add all the parameters properly instead of concatenate some of them into the querystring directly.

You also might want to move the actual open to the point where it is actually needed instead of opening it while you are still busy with other stuff. This specially is important in concurrent situations where it could be more noticeable.

Handling the proper creation and disposing of objects can be done nicely with using. Below some example code.

using (OleDbConnection conn = new OleDbConnection(ConnString))
{
  using (OleDbCommand cmd = new OleDbCommand(SqlString, conn))
  {
    cmd.CommandType = CommandType.Text;
    // Add the input parameter and set its properties.
    SqlParameter parameter = new SqlParameter();
    parameter.ParameterName = "@Parameter";
    parameter.SqlDbType = SqlDbType.NVarChar;
    parameter.Direction = ParameterDirection.Input;
    parameter.Value = categoryName;
    conn.Open();
    cmd.ExecuteNonQuery();
  }
}



祝你好运!



Good luck!


这篇关于将记录插入MS Access数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆