我的MS Access数据库中有以下表格。 个人,合作伙伴,ContactDetails,NativeAddress bla bla bal。我在Visual Studio 2012中为上面的表创建了一个向导。屏幕截图如下。现在,当用户按下提交按钮时,我想在所有表中一次提交所有数据。那么我现在应该使用什么语法。请指导。
我的代码是这样的。它不完整,刚刚开始我的剧本。所以请不要误会我的意思。
protected void dataWizard_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\micronets\jobwork-2013\arunthathiyar-sangham\arunthathiyar-web-application\App_Data\arunthathiyar-db.accdb";
string personalDetails = "INSERT INTO PersonalDetails(FirstName, MiddleName, LastName, Sex, Age, DateOfBirth, PlaceOfBirth, EducationalQualification, EmploymentStatus, Profession, PhysicalStatus, BloodGroup) VALUES (@fnPD, @mmPD, @lnPD, @sexPD, @agePD, @dobPD, @pobPD, @eqPD, @esPD, @profPD, @phyicPD, @bgPD)";
string familyDetails = "INSERT INTO FamilyDetails(Relationship, FullName, Status, BloodGroup, EducationalQualification, Profession, EmploymentStatus) VALUES(@relFD, @fnFD, @statusFD, @bgFD, @eqFD, @profFD, @esFD)";
string contactDetails = "INSERT INTO ContactDetails(FlatBuildingStreet, Landmark, Area, City, Pincode, State, Country, Mobile, Telephone, Email) VALUES(@fbsCD, @landCD, @areaCD, @cityCD, @pinCD, @stateCD, @countryCD, @mobCD, @telCD, @emailCD)";
try
{
con.Open();
txtMemAmountReceived.Text = txtPDFirstName.Text;
}
catch
{
txtMemAmountReceived.Text = "Sorry";
}
答案 0 :(得分:1)
你正朝着正确的方向前进。以下是您需要做的事情:
创建OleDbCommand对象
您有一个连接,现在需要创建和Command对象,可以存储SQL文本并对数据库执行命令。像这样:
OleDbCommand cmd = new OleDbCommand(personalDetails, con);
打开,执行,关闭
然后,在try块中,您要打开连接,执行查询并关闭连接:
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
冲洗并重复
就执行所有三个查询而言,您可以从那里获取它。您只需要使用要执行的其他查询的文本更新cmd.CommandText
属性,然后再次调用ExecuteNonQuery
。
答案 1 :(得分:0)
您可以将所有查询字符串连接成一个用分号分隔的字符串(;)因此,一个大字符串将被发送到服务器并且每个查询都将被处理,然后您只需要与数据库建立一个连接
string myQuery = personalDetails+ "; " + familyDetails + "; " + contactDetails
但是,我只需要进行3个独立的连接,这样就可以更轻松地管理所有参数。如果您必须返回并更改查询或参数,那将是一团糟。