我遇到了以下问题:将有关产品的信息写入表格时没有错误,从当前表格切换到另一个表格并再次返回时没有错误。但是,关闭程序并重新启动后,当我打开表单添加产品时,updateProducts 函数中出现错误(它在Form_load 中调用,以及在将产品信息写入数据库的函数中调用)。Barcode 字段的类型是 nvarchar(50),所以我无法弄清楚错误中的 Int32 来自哪里。还是在datagridview中显示值有问题?那为什么,在写入数据之后和关闭程序之前,我可以安全地从一个窗体切换到另一个窗体,从而调用相同的 updateProducts 函数而不会出错。有人会告诉吗?PS:如果错误是表面上的,我提前道歉,我最近开始熟悉这种语言,
错误文本
产品表


您需要检查显然是在设计器中使用鼠标创建的类型化 DataSet 以及其中
this.productDataSet的表,Products以及向导为 Barcode 创建的列的类型。您的代码逻辑根本不清楚。向导已经为您创建了显示表格的所有内容,第一行从数据库加载数据。您实际上取消了第一行的所有工作,并再次手动访问数据库,甚至进行了奇怪的操作,再次从数据库中检索数据!那么第一行是必要的吗?为什么打开连接,实例化适配器,然后立即关闭连接?理论上,你需要一个开放的连接
адаpter.Fill(),你的连接已经关闭了!当您只从数据库中读取数据时,您
SqlCommandBuilder根本不需要一个词。需要命令生成器来自动创建命令insert,update和delete,如果你只是阅读,那你为什么需要这些命令,嗯?