我想使用三层解决方案(或者它可能被称为)来插入MySql数据库。ASP.NET从bll插入到mysql
我已经用MS-sql数据库完成了这个可能的时间,它工作得很好。
但现在当我试图做一个插入我得到的ID不能为空。 我以为数据库处理好了。 如果我直接在代码中写入插入,并使用MySqlCommand和executeNonQuery,那么它的效果很好。
是不是可以在MySql中使用BLL和DAL?
错误消息:
System.Data.NoNullAllowedException:柱 'GiftID' 不允许空值。 System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args,DataRow eRow,DataRowAction eAction,Boolean fireEvent)上的System.Data.DataColumn.CheckNullable(DataRow行)System.Data.DataColumn.CheckColumnConstraint(DataRow row,DataRowAction action) .Data.DataTable.SetNewRecordWorker(DataRow row,Int32 proposedRecord,DataRowAction action,Boolean isInMerge,Int32 position,Boolean fireEvent,Exception & deferredException)at System.Data.DataTable.InsertRow(DataRow row,Int32 proposedID,Int32 pos,Boolean fireEvent)在c:\ Users \ IT \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ payex \ 45bd406a \ 10c84208 \ App_Code中的PayEx.payexusersDataTable.AddpayexusersRow(payexusersRow row)处的System.Data.DataRowCollection.Add(DataRow行) cyqhjqo7.1.cs:PayExBLL.AddPayExUser(String Firstname,String Lastname,String Company,String Address,String Zip,String City,String Phone,String Email,Byte ContactMe,UInt32 Amount,UInt32 TransactionN C:\ Users \ IT \ Documents \ Visual Studio 2008 \ WebSites \ payex \ App_Code \ BLL \ PayExBLL.cs中的第66行:_Default.btn_next3_Click(Object sender,EventArgs e)in c: \用户\ IT \文档\ Visual Studio 2008的\网站已\ payex \ Default.aspx.cs:行191
我的代码:
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]
public bool AddPayExUser(string Firstname, string Lastname, string Company, string Address, string Zip, string City, string Phone, string Email, byte ContactMe, uint Amount, uint TransactionNumber, byte Anonymous, string Currency)
{
PayEx.payexusersDataTable puTable = new PayEx.payexusersDataTable();
PayEx.payexusersRow puRow = puTable.NewpayexusersRow();
puRow.Firstname = Firstname;
puRow.Lastname = Lastname;
puRow.Company = Company;
puRow.Address = Address;
puRow.Zip = Zip;
puRow.City = City;
puRow.Phone = Phone;
puRow.Email = Email;
puRow.ContactMe = ContactMe;
puRow.Amount = Amount;
puRow.TransactionNumber = TransactionNumber;
puRow.Anonymous = Anonymous;
puRow.Currency = Currency;
puTable.AddpayexusersRow(puRow);
int rowsAffected = Adapter.Update(puTable);
return rowsAffected == 1;
}
好,GiftId具有自动增量的主键。所以它应该在我插入时自动获得一个新号码。 – Fred 2009-05-25 16:36:55
但这确实是个问题。我们在这里看不到您的DAL工作,所以在这种情况下“应该”与“不知道”一样好。重新访问您的DAL。我敢打赌,这是问题所在。 – CarmineSantini 2009-05-25 20:33:30