ASP.NET从bll插入到mysql

标签 asp.net mysql insert bll

我正在尝试使用三层解决方案(或可能的名称)向 MySql 数据库进行插入。

我已经用 MS-sql 数据库做过很多次了,效果非常好。

但是现在当我尝试插入时,我得到 ID 不能为空。 我认为数据库已经解决了这个问题。 如果我直接在代码中编写插入并使用 MySqlCommand 和executeNonQuery,效果会很好。

MySql 不能使用 BLL 和 DAL 吗?

错误消息:

System.Data.NoNullAllowedException:列“GiftID”不允许为空。在System.Data.DataColumn.CheckNullable(DataRow行)在System.Data.DataColumn.CheckColumnConstraint(DataRow行,DataRowAction操作)在System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args,DataRow eRow,DataRowAction eAction,Boolean fireEvent)在系统.Data.DataTable.SetNewRecordWorker(DataRow行,Int32提议的Record,DataRowAction操作, bool isInMerge,Int32位置, bool fireEvent,异常& deferredException)在System.Data.DataTable.InsertRow(DataRow行,Int32提议ID,Int32 pos, bool fireEvent)在System.Data.DataRowCollection.Add(DataRow row) at PayEx.payexusersDataTable.AddpayexusersRow(payexusersRow row) in c:\Users\IT\AppData\Local\Temp\Temporary ASP.NET Files\payex\45bd406a\10c84208\App_Code.cyqhjqo7 .1.cs:PayExBLL.AddPayExUser第444行(字符串名字,字符串姓氏,字符串公司,字符串地址,字符串邮政编码,字符串城市,字符串电话,字符串电子邮件,字节ContactMe,UInt32金额,UInt32交易编号,字节匿名,字符串货币)在c:\Users\IT\Documents\Visual Studio 2008\WebSites\payex\App_Code\BLL\PayExBLL.cs:第66行在_Default.btn_next3_Click(对象发送者,EventArgs e)在c:\Users\IT\Documents\Visual Studio 2008\WebSites\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;
}

最佳答案

System.Data.NoNullAllowedException: Column 'GiftID' does not allow nulls. at 

从代码的外观来看,您忘记将 GiftID 参数传递给您的函数,但它应该出现在表格行中(并且不能为空)。

因此异常(exception)。要么在上面的代码中设置它,要么在 MySQL 数据库中定义默认值。

关于ASP.NET从bll插入到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/907242/

相关文章:

mysql - 根据一列的最大值选择相同的行,当最大值等于时只选择其中一行

java | mybatis|插入多重贴图

php - Zend Framework 数据库插入问题

c# - PDF 签名 - 使用 ItextSharp 将时间戳标记设置为签名

c# - 从 Gridview 中选择级联两个下拉列表的值

asp.net - ListView 中表格的 VB Css 背景色仅绘制表格的可见部分

sql - 哪个更快,在插入之前或之后存在?

asp.net - 如果用户可以解密它,加密 web.config 有什么意义?

MySQL - 在搜索结果的列中找出表名

php - 相同的 mysql 查询在不同时间在 phpmyadmin 中给出不同的结果