gpt4 book ai didi

c# - 使用 MVP 模式更新 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-29 06:27:03 25 4
gpt4 key购买 nike

我是这种模式的新手,我想知道为什么会出现错误

"cannot convert dbnull to other types"

我知道我的代码不起作用,这就是它在 _view 上返回一些空值的原因,有帮助吗?我在线获取此信息 model.CustomerID = _view.CustomerID;

  Model
public class CustomerModel
{
private string _customerid;
public string CustomerID;
{
get { return _customerid; }
set { _customerid = value; }
}
private string _orderstatus;
public string OrderStatus
{
get { return _orderstatus; }
set { _orderstatus = value; }
}
public void UpdateOrderStatus()
{
var connSettings = ConfigurationManager.ConnectionStrings["DB"];
{
string CN = connSettings.ConnectionString;
MySqlConnection conn = new MySqlConnection(CN);
MySqlCommand cmd = new MySqlCommand("update customerorders set order_status = @value where customerid = @customerid", conn);
conn.Open();
cmd.Parameters.AddWithValue("@customerid", _customerid);
cmd.Parameters.AddWithValue("@value", _orderstatus);
cmd.ExecuteNonQuery();
}
}
}

Interface
public interface ICustomer
{
void SetPresenter(CustomerPresenter presenter);
void UpdateCustomerOrderStatus(CustomerModel record);
string CustomerID { get; set; }
string OrderStatus { get; set; }
}

Presenter
public class CustomerPresenter
{
ICustomer _view;
CustomerModel _model = new CustomerModel();

public void CustomerPresenter(ICustomer view)
{
_view = view;
}
private void updateCustomerOrderStatus(CustomerModel model)
{
model.CustomerID = _view.CustomerID;
model.OrderStatus = _view.OrderStatus;
}
public void Save()
{
updateCustomerOrderStatus(CustomerModel model)
this._view.UpdateCustomerOrderStatus(CustomerModel record);
}
}

CustomerForm
public partial class frmCustomer: Form, ICustomer
{
CustomerPresenter _presenter
public void SetPresenter(CustomerPresenter presenter)
{
_presenter = presenter
}
public string CustomerID
{
get { return this.txtCustomerID.Text; }
set { txtCustomerID.Text = value; }
}
public string OrderStatus
{
get { return this.txtOrderStatus.Text; }
set { txtOrderStatus.Text = value; }
}
public void UpdateCustomerOrderStatus(CustomerModel record)
{
record.CustomerID = txtCustomerID.Text;
record.OrderStatus = txtOrderStatus.Text;
}
private void btnSave_Click(object sender, EventArgs e)
{
_presenter.Save();
}
}

最佳答案

您的 _view 现在确实已正确初始化,但 _view.CustomerID 将始终为 null,因为您没有在 获取设置。因此,当您尝试使用 get 时,它不会返回任何内容,这就是您收到此异常的原因。

关于c# - 使用 MVP 模式更新 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30366282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com