C# c上的一个或多个必需参数未给出值

C# c上的一个或多个必需参数未给出值,c#,mysql,ms-access,C#,Mysql,Ms Access,这是我第一次在c和MySQL上编写代码,如果我的代码凌乱,我很抱歉 我的数据库来自Ms Access,我正在尝试通过c应用程序将所有数据迁移到MySQL工作台 下面是我的代码 sqlcomm = "SELECT Product_Name,Product_ID,Product_Category,Quantity,Location,Manufacturer,Remark,QR_Code,Description,MinQuantity,Color_Type,Owner,Project_Name FRO

这是我第一次在c和MySQL上编写代码,如果我的代码凌乱,我很抱歉

我的数据库来自Ms Access,我正在尝试通过c应用程序将所有数据迁移到MySQL工作台

下面是我的代码

sqlcomm = "SELECT Product_Name,Product_ID,Product_Category,Quantity,Location,Manufacturer,Remark,QR_Code,Description,MinQuantity,Color_Type,Owner,Project_Name FROM Inventory_Management ";
            adapter1 = new OleDbDataAdapter(sqlcomm, conn);
            OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter1);
            dt1.Reset();
            adapter1.Fill(dt1);
            if (dt1.Rows.Count > 0)
            {
                DataTable dt_Tbl = new DataTable();
                dt_Tbl.Columns.Add("Product_Name");
                dt_Tbl.Columns.Add("Product_ID");
                dt_Tbl.Columns.Add("Product_Category");
                dt_Tbl.Columns.Add("Quantity");
                dt_Tbl.Columns.Add("Location");
                dt_Tbl.Columns.Add("Manufacturer");
                dt_Tbl.Columns.Add("Remark");
                dt_Tbl.Columns.Add("QR_Code");
                dt_Tbl.Columns.Add("Description");
                dt_Tbl.Columns.Add("MinQuantity");
                dt_Tbl.Columns.Add("Color_Type");
                dt_Tbl.Columns.Add("Owner");
                dt_Tbl.Columns.Add("Project _Name");
for (int i = 0; i < dt1.Rows.Count; i++)
                {
                    List<string> list = new List<string>();
                    DataRow r = dt1.Rows[i];

                    DataRow dr;
                    dr = dt_Tbl.NewRow();
                    dr = r;
                    dt_Tbl.Rows.Add(dr);

                    //string crd = r["Product_Name"].ToString();
                    //list.Add(r["Product_ID"].ToString());
                    //list.Add(r["Product_Category"].ToString());
                    //list.Add(r["Quantity"].ToString());
                    //list.Add(r["Location"].ToString());
                    //list.Add(r["Manufacturer"].ToString());
                    //list.Add(r["Remark"].ToString());
                    //list.Add(r["QR_Code"].ToString());
                    //list.Add(r["Description"].ToString());
                    //list.Add(r["MinQuantity"].ToString());
                    //list.Add(r["Color_Type"].ToString());
                    //list.Add(r["Owner"].ToString());
                    //list.Add(r["Project _Name"].ToString());
                }

                conn.Close();

                return dt_Tbl;
            }
            else
                return null;
        }
        catch (Exception ex)
        {
            return null;
        }
    }
我在代码中遗漏了什么吗? 任何帮助都将不胜感激


非常感谢

您正在从MS Access读取数据,并创建一个数据表并将其与数据一起加载。现在需要将数据表dt_Tbl写入MySQL数据库。因此,您需要打开到MySQL的连接并在其上运行insert命令,或者使用数据适配器将数据推送到MySQL

您可以通过编写函数稍微清理代码。不要试图在一个函数中做太多的事情

DataTable products = ReadProductsFromMSAccess();
WriteProductsToMySQL(products);

哪一行给出了错误?确切的异常消息是什么?它不显示异常消息,程序只是开始编译,没有给出任何错误。所以我使用断点逐行检查代码。在catch Exception ex中弹出错误,消息为“一个或多个必需参数未给定值”它不显示异常消息->删除try/catch,或使用调试器逐步检查代码以找出异常来自哪一行?按照您的建议后,异常位于SELECT Product_Name,库存管理中的产品标识、产品类别、数量、位置、制造商、备注、二维码、说明、最小数量、颜色类型、所有者、项目名称;。表示一个或多个必需参数没有给定值。我认为问题出在我的数据库中,因为有些列的输入没有任何数据,我在调试了几次之后才编译了它!很高兴能帮上忙。快乐编码!