OledbDataAdapter
を使用してExcelファイルからデータを読み込むため、複数の製品情報を一度にアップロードできます。私はそれが適切に動作するように多くの時間を費やし、最後には大丈夫です。OleDbDataAdapterでExcelファイルを読むと、特定の列がC#によって読み取られない可能性があります。
しかし、今日私は新しい列を追加しますが、これは他のすべてのデータを読み込みますが、上記の「Resim」というタイトルの列は読み込まれません。私はすべてを行い、列の位置を変更し、フォーマットを「番号」、「テキスト」、「スタンダート」に何度も変更しました。 しかし、この特定の列の読み込みを拒否する列のプロパティにかかわらず、常にテーブルに ""戻ります。誰でも助けることができますか?
string conString = string.Empty;
switch (extension)
{
case ".xls": //Excel 97-03.
conString = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
break;
case ".xlsx": //Excel 07 and above.
conString = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
break;
}
DataTable dt = new DataTable();
conString = string.Format(conString, filePath);
using (OleDbConnection connExcel = new OleDbConnection(conString))
{
using (OleDbCommand cmdExcel = new OleDbCommand())
{
using (OleDbDataAdapter odaExcel = new OleDbDataAdapter())
{
using (maindb_denizlerEntities db = new maindb_denizlerEntities())
{
cmdExcel.Connection = connExcel;
//Get the name of First Sheet.
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
connExcel.Close();
//Read Data from First Sheet.
connExcel.Open();
cmdExcel.CommandText = "SELECT * From [" + sheetName + "] ";
odaExcel.SelectCommand = cmdExcel;
odaExcel.Fill(dt);
Kategori_UrunBLL _katUrunler = new Kategori_UrunBLL();
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["Adi"].ToString() == null || dt.Rows[i]["Adi"].ToString() == "")
{
dt.Rows[i].Delete();
}
}
dt.AcceptChanges();
int yeniRowCount = dt.Rows.Count;
for (int i = 0; i < yeniRowCount; i++)
{
var adi = dt.Rows[i]["Adi"].ToString();
var adi_En = dt.Rows[i]["Adi_EN"].ToString();
var aciklama = dt.Rows[i]["Aciklama"].ToString();
var aciklama_En = dt.Rows[i]["Aciklama_EN"].ToString();
var kisaOzet = dt.Rows[i]["Kisa_Ozet"].ToString();
var kisaOzet_En = dt.Rows[i]["Kisa_Ozet_EN"].ToString();
var etiketler = dt.Rows[i]["Etiketler"].ToString();
var etiketler_En = dt.Rows[i]["Etiketler_EN"].ToString();
var resim = dt.Rows[i]["Resim"].ToString();
var fiyat = dt.Rows[i]["Fiyat"];
var eskifiyat = dt.Rows[i]["EskiFiyat"];
var durumu = dt.Rows[i]["Durum"];
......
......
最初の質問ですが、適切なファイルをターゲットに設定していますか?第二に、これをデバッグするときに、dtオブジェクトを埋める前にSQLから戻ってくるもの –
SQLはありません。 Excelファイルからすべてのデータを取得していますが、この「Resim」列以外はすべてOKです。私はテストし、デバッグし、他のすべては正しく動作しています –
私はあなたの選択クエリ、つまりSQLとも呼ばれるあなたの構造化クエリ言語を意味すると言います。 –