Laden...

"Failed to convert parameter value from a Guid to a String."

Erstellt von Ishildur vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.985 Views
I
Ishildur Themenstarter:in
431 Beiträge seit 2005
vor 17 Jahren
"Failed to convert parameter value from a Guid to a String."

Einen schönen guten Abend allerseits! Ich habe folgende Exceptionmeldung, wenn ich SqlDataAdapter.Update aufrufe und kann absolut nichts damit anfangen! Ich habe sämtliche Parameter des SqlDataAdapters mit den zugehörigen Spalten in der DataTable verglichen und es ist bestimmt nirgends eine solche Konvertierung erforderlich!

Bin bereits mehr als eine Stunde versucht, das Problem zu lokalisieren, jedoch ohne Erfolg!

Lg Ishildur

354 Beiträge seit 2004
vor 17 Jahren

Liegt es vielleicht daran, dass ein Datenbankfeld am SQL Server als GUID definiert ist und daher beim Auslesen von Daten aus deinem DataReader diese Meldung bekommst?

.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup

I
Ishildur Themenstarter:in
431 Beiträge seit 2005
vor 17 Jahren

@nitronic
Nein, der Fehler passiert, wenn ich die Update Methode des entsprechenden Adapters aufrufe. Da die Daten ja scheinbar ordnungsgemäss von den Controls via Databindings in die DataTable gelangte, muss der Fehler ja daran liegen, dass in der DataTable und den Parameter des Insert - Commands des DataAdapter unterschiedliche Typen definiert sind. Ich habe diese aber tausendmal geprüft:

Der Insert - Command des Personenadapters


   // create and assign the insert - command
   strCmd  = "INSERT INTO Person(Person_ID,Country_ID,Nationality_ID,Title,PersonalName,";
   strCmd += "FamilyName,Birthdate,Civilstate,Profession,AHV,Adress,Zip,Place,Postcase,";
   strCmd += "Description,Picture,News,Inserted,Locked) VALUES(@Person_ID,@Country_ID,";
   strCmd += "@Nationality_ID,@Title,@PersonalName,@FamilyName,@Birthdate,@Civilstate,";
   strCmd += "@Profession,@AHV,@Adress,@Zip,@Place,@Postcase,@Description,@Picture,@News,";
   strCmd += "GETDATE(),0)";
   sqlCmd = new SqlCommand(strCmd,this.Connection);
   sqlCmd.Parameters.Add("Person_ID",SqlDbType.UniqueIdentifier,0,"Person_ID");
   sqlCmd.Parameters.Add("Country_ID",SqlDbType.UniqueIdentifier,0,"Country_ID");
   sqlCmd.Parameters.Add("Nationality_ID",SqlDbType.UniqueIdentifier,0,"Nationality_ID");
   sqlCmd.Parameters.Add("Title",SqlDbType.TinyInt,0,"Title");
   sqlCmd.Parameters.Add("PersonalName",SqlDbType.VarChar,20,"PersonalName");
   sqlCmd.Parameters.Add("FamilyName",SqlDbType.VarChar,20,"FamilyName");
   sqlCmd.Parameters.Add("Birthdate",SqlDbType.DateTime,0,"Birthdate");
   sqlCmd.Parameters.Add("Civilstate",SqlDbType.TinyInt,0,"Civilstate");
   sqlCmd.Parameters.Add("Profession",SqlDbType.VarChar,50,"Country_ID");
   sqlCmd.Parameters.Add("AHV",SqlDbType.VarChar,20,"AHV");
   sqlCmd.Parameters.Add("Adress",SqlDbType.VarChar,50,"Adress");
   sqlCmd.Parameters.Add("Zip",SqlDbType.VarChar,10,"Zip");
   sqlCmd.Parameters.Add("Place",SqlDbType.VarChar,50,"Place");
   sqlCmd.Parameters.Add("Postcase",SqlDbType.VarChar,50,"Postcase");
   sqlCmd.Parameters.Add("Description",SqlDbType.Text,0,"Description");
   sqlCmd.Parameters.Add("Picture",SqlDbType.Image,50,"Picture");
   sqlCmd.Parameters.Add("News",SqlDbType.Bit,0,"News");
   this.sqlAdpPrs.InsertCommand = sqlCmd;

Die Personentabelle


   // create and setup the person - table
   this.dtaTblPrs = this.DataSet.Tables.Add("Person");
   this.dtaTblPrs.Columns.Add("Person_ID",typeof(Guid));
   this.dtaTblPrs.Columns.Add("Country_ID",typeof(Guid));
   this.dtaTblPrs.Columns.Add("Nationality_ID",typeof(Guid));
   this.dtaTblPrs.Columns.Add("Title",typeof(Byte));
   this.dtaTblPrs.Columns.Add("PersonalName",typeof(String));
   this.dtaTblPrs.Columns.Add("FamilyName",typeof(String));
   this.dtaTblPrs.Columns.Add("Birthdate",typeof(DateTime));
   this.dtaTblPrs.Columns.Add("Age",typeof(Int16));
   this.dtaTblPrs.Columns.Add("Civilstate",typeof(Byte));
   this.dtaTblPrs.Columns.Add("Profession",typeof(String));
   this.dtaTblPrs.Columns.Add("AHV",typeof(String));
   this.dtaTblPrs.Columns.Add("Adress",typeof(String));
   this.dtaTblPrs.Columns.Add("Zip",typeof(String));
   this.dtaTblPrs.Columns.Add("Place",typeof(String));
   this.dtaTblPrs.Columns.Add("Postcase",typeof(String));
   this.dtaTblPrs.Columns.Add("Description",typeof(String));
   this.dtaTblPrs.Columns.Add("Picture",typeof(Byte[]));
   this.dtaTblPrs.Columns.Add("News",typeof(Byte));
   this.dtaTblPrs.Columns["News"].DefaultValue = false;
   this.dtaTblPrs.Constraints.Add(null,this.dtaTblPrs.Columns["Person_ID"],true);

Lg Ishildur

I
Ishildur Themenstarter:in
431 Beiträge seit 2005
vor 17 Jahren

Hier noch der Zustand der betreffenden Objekte zum Zeitpunkt der Exception:

dtaTblPrs.Rows[0][0] {dbac0015-7a61-496f-a7e3-837164ee616d} object {System.Guid}
dtaTblPrs.Rows[0][1] {99cf4512-8aad-4b8b-990d-eb7d3fedd39f} object {System.Guid}
dtaTblPrs.Rows[0][2] {46cc57e0-6443-4df0-b888-71088f622f37} object {System.Guid}
dtaTblPrs.Rows[0][3] 0 object {byte}
dtaTblPrs.Rows[0][4] "Erika" object {string}
dtaTblPrs.Rows[0][5] "Friedli" object {string}
dtaTblPrs.Rows[0][6] {08.08.2006 00:00:00} object {System.DateTime}
dtaTblPrs.Rows[0][7] 0 object {byte}
dtaTblPrs.Rows[0][8] "Programmierer" object {string}
dtaTblPrs.Rows[0][9] "941.81.385.258" object {string}
dtaTblPrs.Rows[0][10] "Schwenistutz 258" object {string}
dtaTblPrs.Rows[0][11] "6674" object {string}
dtaTblPrs.Rows[0][12] "Langnau" object {string}
dtaTblPrs.Rows[0][13] {} object {System.DBNull}
dtaTblPrs.Rows[0][14] {} object {System.DBNull}
dtaTblPrs.Rows[0][15] {} object {System.DBNull}
dtaTblPrs.Rows[0][16] 0 object {byte}
sqlCmd.Parameters[0].SqlDbType UniqueIdentifier System.Data.SqlDbType
sqlCmd.Parameters[1].SqlDbType UniqueIdentifier System.Data.SqlDbType
sqlCmd.Parameters[2].SqlDbType UniqueIdentifier System.Data.SqlDbType
sqlCmd.Parameters[3].SqlDbType TinyInt System.Data.SqlDbType
sqlCmd.Parameters[4].SqlDbType VarChar System.Data.SqlDbType
sqlCmd.Parameters[5].SqlDbType VarChar System.Data.SqlDbType
sqlCmd.Parameters[6].SqlDbType DateTime System.Data.SqlDbType
sqlCmd.Parameters[7].SqlDbType TinyInt System.Data.SqlDbType
sqlCmd.Parameters[8].SqlDbType VarChar System.Data.SqlDbType
sqlCmd.Parameters[9].SqlDbType VarChar System.Data.SqlDbType
sqlCmd.Parameters[10].SqlDbType VarChar System.Data.SqlDbType
sqlCmd.Parameters[11].SqlDbType VarChar System.Data.SqlDbType
sqlCmd.Parameters[12].SqlDbType VarChar System.Data.SqlDbType
sqlCmd.Parameters[13].SqlDbType VarChar System.Data.SqlDbType
sqlCmd.Parameters[14].SqlDbType Text System.Data.SqlDbType
sqlCmd.Parameters[15].SqlDbType Image System.Data.SqlDbType
sqlCmd.Parameters[16].SqlDbType Bit System.Data.SqlDbType
dtaTblPrs.Rows.Count 1 int

Exception:

Failed to convert parameter value from a Guid to a String.

Scheisse noch mal, wo ist da wohl eine verfiggte Konvertierung von Guid nach String??? Hää?? Der hat doch einen an der Waffel!!! 😜