2017-08-24 6 views
-1

.txtファイルをDataGridViewにインポートしています。テキストをファイルに読み込むDataGridと長い番号のファイルが正しく表示されない

残念ながら、唯一の重要な値は正しく表示されません。

値(ドイツの追跡番号)は「00340433914967320068」

それがデータグリッドに示されている方法を添付のスクリーンショット(列F2)を参照してください。 他のすべての値はcharmのように機能します。

でも長いもののように:"[x,xx] Gewicht<0>N^[0,00] DHL Paket<101>L^"

screenshot shows problem

コードは次のとおりです。

private void buttonEasy1_Click(object sender, EventArgs e) 
    { 
     OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
     if (openFileDialog1.ShowDialog() ==   System.Windows.Forms.DialogResult.OK) 
     { 
      this.textBox1.Text = openFileDialog1.FileName; 
      this.labeltxt1.Text = openFileDialog1.SafeFileName; 

      // .txt einlesen Anfang 

      string[] lines1 = { "[" + labeltxt1.Text + "]", "Format = Delimited(;)", "ColNameHeader = False "}; 
      System.IO.File.WriteAllLines(@"C:\*\schema.ini", lines1); 


      string FileName1 = textBox1.Text; 

      OleDbConnection conn1 = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + 
        Path.GetDirectoryName(FileName1) + ";Extended Properties='text;';"); 

      conn1.Open(); 

      OleDbDataAdapter adapter1 = new OleDbDataAdapter 
        ("SELECT * FROM " + Path.GetFileName(FileName1), conn1); 

      DataSet ds1 = new DataSet("Temp"); 
      adapter1.Fill(ds1); 

      conn1.Close(); 

      dataGridView1.DataSource = ds1; 
      dataGridView1.DataMember = "Table"; 

      // .txt einlesen Ende 
+0

を表示します。参照してください:https://stackoverflow.com/questions/9028029/how-to-change-datatype-of-a-datacolumn-in-a-datatable – Steve

答えて

0

はDataGrid列の書式を変更してみてください。たとえば:

dataGridView1.Columns[1].DefaultCellStyle.Format = "N0"; 

または

dataGridView1.Columns[1].DefaultCellStyle.Format = "###################"; 
+0

お返事ありがとうございますJalal!途中で仕事をしますか?今度は340433914967320000と表示されますが、値は00340433914967320587です。接頭辞00は必須ではありませんが、最後の3桁は必須です。 –

0

スティーブのコメントに関してさらに情報 -

は、私はそれらの解決策を試してみました:

How To Change DataType of a DataColumn in a DataTable?

DataTable dtCloned = dt.Clone(); 
dtCloned.Columns[1].DataType = typeof(String); 
foreach (DataRow row in dt.Rows) 
{ 
dtCloned.ImportRow(row); 
} 

adapter.FillSchema(table, SchemaType.Source); 
table.Columns[1].DataType = typeof (String); 
adapter.Fill(table); 

何も変わっていない - それでも私はあなたがその列の文字列データ型にする必要があると思う3,40433191496732E + 17の代わりに、00340433914967320587

関連する問題