Konvertieren Sie den Dateiinhalt von einer XML-Datei in UTF-16 [Duplikat]C#

Ein Treffpunkt für C#-Programmierer
Guest
 Konvertieren Sie den Dateiinhalt von einer XML-Datei in UTF-16 [Duplikat]

Post by Guest »

In einer C#-Konsolen-App lese ich XML-Dateien, die sich in einem bestimmten Ordner befinden.
Ich erhalte den Inhalt jeder Datei als Zeichenfolge und möchte ihn hineinschreiben eine SQL Server-Tabelle mit Entity Framework.
Die Tabelle hat drei Spalten: Die erste ist eine automatisch inkrementierte ID, die zweite eine GUID und die dritte der Inhalt des XML< /code>-Datei.
Die Spalte für den Inhalt der Die XML-Datei ist vom Typ XML.
Wenn ich versuche, eine Zeile mit dem Inhalt einer XML-Datei in diese Tabelle zu schreiben, erhalte ich die folgende Ausnahme:

XML-Analyse: Zeile 1, Zeichen 38, Kodierung kann nicht geändert werden

Die Die XML-Datei hat die Kodierung UTF-8, aber ich glaube, ich brauche UTF-16.
Wie kann ich den Dateiinhalt richtig kodieren?
Jede Hilfe ist willkommen.
Dies ist ein typischer Header von die XML-Dateien: Die Tabelle wurde auf folgende Weise erstellt:

Code: Select all

USE [myDatabase]
GO

SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [stor].[myTable](
[myTableId] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[FileGuid] [varchar](36) NOT NULL,
[XmlDocument] [xml] NOT NULL,
CONSTRAINT [PK_myTable] PRIMARY KEY CLUSTERED
(
[myTableId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Und das ist mein Code zum Schreiben des Dateiinhalts in SQL Server:

Code: Select all

public void WriteXmlTestFileToDatabase(string xmlFileContent)
{
using (SqlServerDatabaseEntities db = new SqlServerDatabaseEntities())
{
var newEntry = new myTable();
newEntry.FileGuid = Guid.NewGuid().ToString();
newEntry.XmlDocument = xmlFileContent;

db.myTable.Add(newEntry);
db.Entry(newEntry).State = EntityState.Added;

db.SaveChanges();   // Here I'm getting the exception
}
}
SCHLUSSFOLGERUNG
Ich habe den ersten Knoten mit der Codierung entfernt und SqlCommand zum Schreiben in die Datenbank verwendet.
Es funktioniert also endlich.
Vielen Dank an alle für eure Hilfe und den Input.
Deshalb gefällt mir dieses Forum.
Vielen Dank! :)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post