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:
Code: Select all
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
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
}
}
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!
