[Mono-devel-list] 've an issue when i try to copy a datarow

Hubert FONGARNAND informatique.internet at fiducial.fr
Thu Jul 7 11:33:59 EDT 2005


I've an issue when i try to copy a datarow (extracted from a database) into
another datarow. 
The type of the datarow is System.Guid.
The exception is :
Unhandled Exception: System.ArgumentException: Unknown target conversion
typeCouldn't store <75ca881f-cfd2-4d45-a0c6-bb1f3374466a> in
Id_Chef_Produit Column.  Expected type is Guid. --->
System.InvalidCastException: Unknown target conversion type

I've a small test case which show how to reproduce it :
// project created on 28/06/2005 at 09:59
using System;
using System.Data;
using System.Data.SqlClient;

class MainClass
{
	static string cnx="user id=sa;password=sa;data source=10.69.100.93;initial
catalog=Fiche_Produit";

	public static void Main(string[] args)
	{
		Console.WriteLine("Hello World!");
		string requete="SELECT * FROM PRODUIT";
		SqlCommand cmd=new SqlCommand();
		SqlDataAdapter dta=new SqlDataAdapter(cmd);
		DataSet ds=new DataSet();
		cmd.Connection=new SqlConnection(cnx);
		cmd.CommandText=requete;
		dta.Fill(ds,"produit");
		Console.WriteLine("Select effectué");
		Console.WriteLine(ds.DataSetName);
		foreach (DataColumn col in ds.Tables["produit"].Columns)
		{
			Console.WriteLine(col.ColumnName);
		}
		foreach (DataRow row in ds.Tables["produit"].Rows)
		{
			Console.WriteLine(row["nom_produit"].ToString());
			Console.WriteLine(row["id_chef_produit"].ToString());
			DataTable dt=MakeTable();
			DataRow r=dt.NewRow();
			r["Id_Chef_Produit"] = row["Id_Chef_Produit"];
		}
	}
		private static DataTable MakeTable()

		{

			DataTable resultsTable = new DataTable("Results");

			//Ajoute les colonnes

			DataColumn newColumn = new  DataColumn();

			newColumn.DataType = System.Type.GetType("System.Guid");

			newColumn.ColumnName = "Produit_id";

			resultsTable.Columns.Add(newColumn);

			//

			newColumn = new  DataColumn();

			newColumn.DataType = System.Type.GetType("System.String");

			newColumn.ColumnName = "Nom_Produit";

			resultsTable.Columns.Add(newColumn);

			//

			newColumn = new  DataColumn();

			newColumn.DataType = System.Type.GetType("System.Guid");

			newColumn.ColumnName = "Id_Chef_Produit";

			resultsTable.Columns.Add(newColumn);

			//

			newColumn = new  DataColumn();

			newColumn.DataType = System.Type.GetType("System.String");

			newColumn.ColumnName = "Nom_Chef_Produit";

			resultsTable.Columns.Add(newColumn);

			//

			newColumn = new  DataColumn();

			newColumn.DataType = System.Type.GetType("System.String");

			newColumn.ColumnName = "Commentaire_Reduit";

			resultsTable.Columns.Add(newColumn);

			//

			newColumn = new  DataColumn();

			newColumn.DataType = System.Type.GetType("System.String");

			newColumn.ColumnName = "Commentaire";

			resultsTable.Columns.Add(newColumn);

			//

			newColumn = new  DataColumn();

			newColumn.DataType = System.Type.GetType("System.String");

			newColumn.ColumnName = "HasModules";

			resultsTable.Columns.Add(newColumn);

			return resultsTable;

		}
}






_______________________________________________
Ce message et les éventuels documents joints peuvent contenir des informations confidentielles.
Au cas où il ne vous serait pas destiné, nous vous remercions de bien vouloir le supprimer et en aviser immédiatement l'expéditeur. Toute utilisation de ce message non conforme à sa destination, toute diffusion ou publication, totale ou partielle et quel qu'en soit le moyen est formellement interdite.
Les communications sur internet n'étant pas sécurisées, l'intégrité de ce message n'est pas assurée et la société émettrice ne peut être tenue pour responsable de son contenu.



More information about the Mono-devel-list mailing list