Material 在數據庫裡的字段是NVARCHAR(50)Material200000007
200140001
200750887Q
200600055R為什麼數字後面帶Q和R的數據都不能從EXCEL導入到SQL 2005數據庫?------------------------------------------------------------------------//传入excel文件的路径。 
    public static void DataTranf(string execlpath)
    {
        DataTable dtExcel = ExcelToDataTable(@execlpath, "Purchase Document");
        for (int i = 0; i < dtExcel.Rows.Count; i++)
        {
            InsertToDB(dtExcel.Rows[i][0].ToString().Trim()            //此处根据excel中字段,自己设定要取用的字段。 
        }
    }public static void InsertToDB(string Material)
    {
        SqlConnection conn = new SqlConnection("data source=localhost;initial catalog=prpo;user id=sa;pwd=123456;");
        conn.Open();
        string str_insertstudent = "insert into purchase (Material) values('" + Material + "')";
        SqlCommand cmd = new SqlCommand(str_insertstudent, conn);
        try
        {
            cmd.ExecuteNonQuery();
            count++;
        }
        catch (Exception e)
        {
            error += e.Message.ToString() + "<br />";
        }
        conn.Close();
    }

解决方案 »

  1.   

    跟踪一下,看
    DataTable dtExcel = ExcelToDataTable(@execlpath, "Purchase Document"); 
    这个地方把excel里面的数据取出来时,有没有把带Q和R的取出来。排除下看问题是出在哪。。
    另外如果仅仅只是导入数据,使用SQL自导的导入就行了insert   into   表名   
          select   *   from   OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data   Source=f:\Test.xls;User   ID=Admin;Password=;Extended   properties=Excel   8.0')...[Sheet1$] 
      

  2.   

    樓上的,你說對了,
    DataTable dtExcel = ExcelToDataTable(@execlpath, "Purchase Document"); 
    这个地方把excel里面的数据取出来时,没有把带Q和R的取出来那怎麼辦?