C# 错误 ;4参数5:无法从';System.Windows.Forms.DataGridViewTextBoxColumn';至';字符串';
我正在构建一个winform应用程序,当我双击按钮添加代码时,会出现以下错误: 一, 错误4参数5:无法从转换 “System.Windows.Forms.DataGridViewTextBoxColumn”到“string” 二, 错误3与的最佳重载方法匹配 “HRM.DAO.BaoHiem.themBH(弦,弦,弦,弦,弦, 字符串“”具有一些无效参数 代码如下:C# 错误 ;4参数5:无法从';System.Windows.Forms.DataGridViewTextBoxColumn';至';字符串';,c#,winforms,C#,Winforms,我正在构建一个winform应用程序,当我双击按钮添加代码时,会出现以下错误: 一, 错误4参数5:无法从转换 “System.Windows.Forms.DataGridViewTextBoxColumn”到“string” 二, 错误3与的最佳重载方法匹配 “HRM.DAO.BaoHiem.themBH(弦,弦,弦,弦,弦, 字符串“”具有一些无效参数 代码如下: private void btThem_Click(object sender, EventArgs e) {
private void btThem_Click(object sender, EventArgs e)
{
string MaNV = this.txtMaNV.ToString();
string LoaiBH = this.cbLoai.ToString();
string SoThe = this.txtSo.ToString();
string NgayCap = this.dtpNgayCap.Value.ToString("yyyy/MM/dd");
string NgayHH = this.dtpNgayCap.Value.ToString("yyyy/MM/dd");
string NoiCap = this.txtNoiCap.ToString();
bh.themBH(MaNV, LoaiBH, SoThe, NgayCap, NgayHetHan, NoiCap);
}
// I'm using Visual Studio 2012 and MS SQL Server 2008
// This method is in another class, which is called from a button_Click event
public void themBH(string manv, string loaiBH, string sothe,
string ngaycap, string ngayhethan, string noicap)
{
string sql = "Insert into [HRM].[dbo].[BaoHiem] values" + "(N'" + manv + "',N'" +
loaiBH + "',N'" + sothe + "',N'" + ngaycap + "',N'" + ngayhethan + "',N" +
"'" + noicap + "')";
da.executeNonQuery(sql);
}
首先,似乎您的一个对象是DataGridViewTextBoxColumn,您无法将其转换为字符串。查看所有对象-我假设您希望添加一些.value或类似的内容。
我进一步假设,第二个错误是第一个错误的后续错误(您试图将am对象作为字符串传递,但什么不起作用)。
我认为,第二个错误将被解决,如果您已经修复了第一个…This:
string MaNV=This.txtMaNV.ToString()例如,code>可能应该是字符串MaNV=this.txtMaNV.Text.ToString()代码>,如果txtMaNV
是控件。如果这些都是控件,则其他控件也是如此。您可以指定要传递给该方法的内容。您正在声明NgayHH
,但将NgayHetHan
作为参数传递。这是正确的吗?首先,不要像那样处理SQL查询;始终使用DB参数。但是,如果数据从DGC开始,为什么要提取它?如果它是绑定数据,你可以用一条语句和一个DataAdapter来更新数据库。我尝试使用另一个DatetimePicker并将它的值转换为“NgayHH”的字符串,这样就可以工作并且不会有任何错误。按照您的想法,第二个错误在我修复第一个错误后得到解决。