Asp.net 无法在mysql中同时插入来自两个或多个客户端的数据
.NET2.0和C—我正在使用存储过程将行插入mysql,但当我试图同时插入来自两个客户端的数据时,我发现只插入了一行,而不是同时插入两行。我无法得到这个错误。如何调整数据库或代码以插入所有数据,而不使用线程 这是我的桌子Asp.net 无法在mysql中同时插入来自两个或多个客户端的数据,asp.net,mysql,Asp.net,Mysql,.NET2.0和C—我正在使用存储过程将行插入mysql,但当我试图同时插入来自两个客户端的数据时,我发现只插入了一行,而不是同时插入两行。我无法得到这个错误。如何调整数据库或代码以插入所有数据,而不使用线程 这是我的桌子 delimiter $$ CREATE TABLE `tblemployee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `EmpID` int(11) NOT NULL, `FedTaxID` varchar(9) CHA
delimiter $$
CREATE TABLE `tblemployee` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`EmpID` int(11) NOT NULL,
`FedTaxID` varchar(9) CHARACTER SET utf8 NOT NULL,
`FirstName` varchar(20) DEFAULT NULL,
`MiddleInitial` varchar(20) DEFAULT NULL,
`LastName` varchar(20) DEFAULT NULL,
`SSN` decimal(9,0) NOT NULL,
`DateOfBirth` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
`MaritalTypeID` varchar(4) CHARACTER SET utf8 DEFAULT NULL,
`EmployeeTypeID` varchar(1) CHARACTER SET utf8 DEFAULT NULL,
`EmploymentStatusTypeID` varchar(1) CHARACTER SET utf8 DEFAULT NULL,
`HireDate` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
`EmployeeWorkLocation` varchar(30) CHARACTER SET utf8 DEFAULT NULL,
`RegularPay` double DEFAULT NULL,
`HourlyRate` double DEFAULT NULL,
`OtherHoursRate` double DEFAULT NULL,
`StartDate` date NOT NULL,
`EndDate` date NOT NULL,
`PayFrequencyTypeID` varchar(50) DEFAULT NULL,
PRIMARY KEY (`EmpID`,`FedTaxID`),
UNIQUE KEY `SSN_UNIQUE` (`SSN`),
KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=385 DEFAULT CHARSET=latin1$$
下面是我的存储过程:
CREATE DEFINER=`root`@`%` PROCEDURE `uspEmployeeAdd`(_EmpID int,_FedTaxID varchar(9),_SSN decimal(9,0),_DateOfBirth varchar(50),_MaritalTypeID varchar(2),_EmployeeTypeID varchar(1),_EmploymentStatusTypeID varchar(1),_HireDate varchar(50),_EmployeeWorkLocation varchar(30),_PayFrequencyType varchar(2),_RegularPay double,_HourlyRate double,_OtherHoursRate double)
BEGIN
insert delayed into tblEmployee(EmpID, FedTaxID, SSN, DateOfBirth, MaritalTypeID, EmployeeTypeID, EmploymentStatusTypeID, HireDate, EmployeeWorkLocation, PayFrequencyType, RegularPay, HourlyRate, OtherHoursRate)
values(_EmpID, _FedTaxID, _SSN, _DateOfBirth, _MaritalTypeID, _EmployeeTypeID, _EmploymentStatusTypeID, _HireDate, _EmployeeWorkLocation, _PayFrequencyType, _RegularPay, _HourlyRate, _OtherHoursRate);
END
这是我的.net代码
public bool Adding()
{
m_bFlag = false;
if (m_oConn.State != ConnectionState.Open)
{
m_oConn.Open();
}
MySqlTransaction otrans = new MySqlTransaction();
otrans=m_oConn.BeginTransaction();
m_oCmd = new MySqlCommand(StoredProcNames.EmployeeDetails_uspEmployeeDetailsInsert, m_oConn);
m_oCmd.CommandType = CommandType.StoredProcedure;
m_oCmd.Parameters.AddWithValue("_EmpID", EmpID);
m_oCmd.Parameters.AddWithValue("_FedTaxID", FedTaxID);
m_oCmd.Parameters.AddWithValue("_FirstName", FirstName);
m_oCmd.Parameters.AddWithValue("_MiddleInitial", MiddleInitial);
m_oCmd.Parameters.AddWithValue("_LastName", LastName);
m_oCmd.Parameters.AddWithValue("_SSN", SSN);
m_oCmd.Parameters.AddWithValue("_MaritalTypeID", Gender);
m_oCmd.Parameters.AddWithValue("_HireDate", HireDate);
m_oCmd.Parameters.AddWithValue("_DateOfBirth", DateOfBirth);
m_oCmd.Parameters.AddWithValue("_PayFrequencyTypeID", PayFrequencyTypeID);
m_oCmd.Parameters.AddWithValue("_StartDate", StartDate);
m_oCmd.Parameters.AddWithValue("_EndDate", EndDate);
try
{
if (m_oCmd.ExecuteNonQuery() > 0)
{
m_bFlag = true;
otrans.Commit();
}
}
catch (MySqlException mse)
{
throw mse;
otrans.Rollback();
}
finally
{
m_oConn.Close();
}
return this.m_bFlag;
}
您可以发布您试图发布到的表的结构以及您试图插入的数据吗?您可以使用代码检查我现在编辑的问题您的存储过程不插入StartDate或EndDate,它们不是空的,也没有默认值。似乎对任何人都不起作用。