Laden...

Datei in Datatable

Erstellt von zerberos vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.516 Views
Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 13 Jahren
Datei in Datatable

Hallo,

ich möchte gerne eine Datei einlesen und diese in einen Feld in einer DataTable speichern

mein Code bis jetzt:


DataColumn col7 = new DataColumn();            
col7.ColumnName = "Datei";
dt.Columns.Add(col7);

FileInfo fileInfo = null; ;
FileStream fileStream = null;
BinaryReader binaryReader = null;
byte[] data;
String link = textBox1.Text;
fileInfo = new FileInfo(@link);
fileStream = new FileStream(@link, FileMode.Open);
binaryReader = new BinaryReader(fileStream);
data = binaryReader.ReadBytes((int)fileInfo.Length);
                            
DataRow row = dt.NewRow();      
row["Datei"] = data;
dt.Rows.Add(row);    


Das einlesen der Datei macht keine Probleme. Nur jetzt steht in der Datatable imm System.byte[] als String drinnen. Muss ich der Spalte in der Datatable ienen speziellen Datentyp geben oder was muss ich machen?

2.891 Beiträge seit 2004
vor 13 Jahren

Muss ich der Spalte in der Datatable ienen speziellen Datentyp geben oder was muss ich machen?

Wie _willst _du sie denn einlesen?
Als Text? Dann reicht ein einfaches File.ReadAllText.

Gruß,
dN!3L

Z
zerberos Themenstarter:in
520 Beiträge seit 2007
vor 13 Jahren

Muss ich der Spalte in der Datatable ienen speziellen Datentyp geben oder was muss ich machen?
Wie _willst _du sie denn einlesen?
Als Text? Dann reicht ein einfaches
>
.

Gruß,
dN!3L

Die Datei ist ja schon in meiner Variable data gespeichert.

Und dieses Data soll halt in einer Zelle in einer DataTable gespeichert werde. Später soll daraus dann wieder ne Datei gemacht werden und das ganze in ner Datenbank gespeichert werden

2.891 Beiträge seit 2004
vor 13 Jahren

Nur jetzt steht in der Datatable imm System.byte[] als String drinnen.

Und das siehst du wo?

dN!3L

P.S.: Bitte keine FullQuotes.

3.825 Beiträge seit 2006
vor 13 Jahren

Hallo Zerberos,

Das einlesen der Datei macht keine Probleme.

Gut !

Nur jetzt steht in der Datatable imm System.byte[] als String drinnen.

Ja, das ist so. Stört Dich das ?

Muss ich der Spalte in der Datatable ienen speziellen Datentyp geben oder was muss ich machen?

Hast Du doch schon, sonst könntest Du die Datei nicht im SQL-Server speichern. Die Spalte "Datei" sollte den Typ binary, image oder varbinary haben.

Was fehlt denn noch ? Du musst doch nur noch die DataRow laden, die Datei wieder in Byte[] speichern und dann als externe Datei wegschreiben.

Wie groß sind denn diese Dateien ? Unter Umständen ist es sinnvoller nur den Pfad in der Datenbank zu speichern.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

1.552 Beiträge seit 2010
vor 13 Jahren

Und das siehst du wo?

Kann sein dass er dies meint? Denn obwohl das Bild als byte[] gespeichert ist wird es als <Binary Data> angezeit.

@zerberos
Wenn das bild als byte[] gespeichert ist musst du es zum datentyp deiner Variable data zurückkonvertieren.

Gruß Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

2.891 Beiträge seit 2004
vor 13 Jahren

Kann sein dass er dies meint? Denn obwohl das Bild als byte[] gespeichert ist wird es als <Binary Data> angezeit.

Oder als DataSource an eine DataTable gehangen wird in den Zellen nur "System.Byte[]" stehen. Da von jedem Zellobjekt die ToString()-Methode aufgerufen wird. Und bei einem byte[] gibt die nunmal "System.Byte[]" zurück.

Gruß,
dN!3L

3.825 Beiträge seit 2006
vor 13 Jahren

Ich glaube ich weiss jetzt was er meint :

Die Spalte "Datei" ist vom Typ "nvarchar" und enthält den String "System.byte[]".

In diesem Falle ist der Datentyp der Spalte "Datei" falsch. Die möglichen Datentypen habe ich schon im letzten Post geschrieben.

Wenn es ich bei der externen Datei um einen Text handelt dann nimm nicht BinaryReader sondern Text.ReadAllText().

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

V
162 Beiträge seit 2010
vor 13 Jahren

Hi,#
auch hier Rätzeln die Helfert wieder was eigentlich gewollt ist.
Bitte sei doch so gut und schreib mal genau was du machen möchtest.

MfG
Björn

Das Leben ist schön!