首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有为一个或多个必需的参数OLEDB异常指定值

没有为一个或多个必需的参数OLEDB异常指定值
EN

Stack Overflow用户
提问于 2014-05-29 13:31:53
回答 1查看 1.1K关注 0票数 0

以前我的代码工作正常,但现在抛出错误:

代码语言:javascript
复制
No value given for one or more  required Parameter OLEDB Exception

代码:

代码语言:javascript
复制
string excelConnectionString = string.Empty;
OleDbConnection excelConnection;
try
{
     if (Request.Files["FileUpload"].ContentLength > 0)
                {
                    string extension = System.IO.Path.GetExtension(Request.Files["FileUpload"].FileName);
                    String fileName = System.IO.Path.GetFileName(Request.Files["FileUpload"].FileName);
                    if (extension == ".xls" || extension == ".xlsx")
                    {
                        string currentPath = System.IO.Path.GetFullPath(Request.Files["FileUpload"].FileName);




                        {
                            string mappedUploadPath = string.Format("{0}\\{1}", Server.MapPath("~/Content/UploadedFolder"), fileName);
                            if (System.IO.File.Exists(mappedUploadPath))
                                System.IO.File.Delete(mappedUploadPath);

                            Request.Files["FileUpload"].SaveAs(mappedUploadPath);

                            // Create connection string to Excel work book
                            excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + mappedUploadPath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"";
                            //Creating an entityconnection
                            using (EntityConnection sqlConnectionString =
                            new EntityConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DB"].ConnectionString))
                            {

                                excelConnection = new OleDbConnection(excelConnectionString);
                                excelConnection.Open();
                                OleDbDataReader dReader;


                                //Create OleDbCommand to fetch data from Excel
                                //PromotionMaster
                                OleDbCommand cmd = new OleDbCommand("Select [SKU],[SupplierId],[Price],[Validity],[LastUpdated],[EnteredBy],[Quantity],[CrediteTermId],[Approved],[DeliveryDate],[ETA],[CommModeId] from [Sheet1$]", excelConnection);
                                dReader = cmd.ExecuteReader();
                                SqlBulkCopy sqlBulkPromotionMaster = new SqlBulkCopy(((SqlConnection)sqlConnectionString.StoreConnection).ConnectionString);

                                sqlBulkPromotionMaster.DestinationTableName = "TempPriceList";
                                sqlBulkPromotionMaster.ColumnMappings.Add("SKU", "SKU");
                                sqlBulkPromotionMaster.ColumnMappings.Add("SupplierId", "SupplierId");
                                sqlBulkPromotionMaster.ColumnMappings.Add("Price", "Price");
                                sqlBulkPromotionMaster.ColumnMappings.Add("Validity", "Validity");
                                sqlBulkPromotionMaster.ColumnMappings.Add("LastUpdated", "LastUpdated");
                                sqlBulkPromotionMaster.ColumnMappings.Add("EnteredBy", "EnteredBy");
                                sqlBulkPromotionMaster.ColumnMappings.Add("Quantity", "Quantity");
                                sqlBulkPromotionMaster.ColumnMappings.Add("CrediteTermId", "CrediteTermId");
                                sqlBulkPromotionMaster.ColumnMappings.Add("Approved", "Approved");
                                sqlBulkPromotionMaster.ColumnMappings.Add("DeliveryDate", "DeliveryDate");
                                sqlBulkPromotionMaster.ColumnMappings.Add("ETA", "ETA");
                                sqlBulkPromotionMaster.ColumnMappings.Add("CommModeId", "CommModeId");


                                sqlBulkPromotionMaster.WriteToServer(dReader);
                                TempData["alertMessage"] = "Data Stored Successfully of PromotionMaster";


                                excelConnection.Close();


                            }


                        }


                    }
                }
                return RedirectToAction("LoadPriceExcel");
            }
            catch (Exception e)
            {
                GC.Collect();
                TempData["alertMessage"] = "Exception Occured";
                return RedirectToAction("LoadPriceExcel");
            }
        }

dReader = cmd.ExecuteReader();这里抛出异常没有为一个或多个必需的参数赋值。

Excel中的所有字段都与表格完全匹配。

以前它是工作的,现在它抛出了错误。

EN

回答 1

Stack Overflow用户

发布于 2015-02-07 07:11:58

检查第一行(A1:ZZ1)是否包含表的标题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23926327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档