J'essaie de remplir une datatable en utilisant un SqlDataAdapter en C#. Je ne suis pas très familier avec les objets, et je travaille essentiellement sur un modèle de code de quelqu'un d'autre pour essayer de comprendre comment cela fonctionne. Voici le formulaire de base.C# SqlDataAdapter.Fill donnant une erreur à propos de la conversion de données lors de la transmission du paramètre datable
SqlCommand command = new SqlCommand(@"SELECT * FROM tblEmployees WHERE Name = " + firstSSN,connection);
SqlDataAdapter adapter = new SqlDataAdapter(command.CommandText.ToString(), connection.ConnectionString.ToString());
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adapter);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);
Et cela fonctionne très bien sur leur forme. J'ai essayé de faire la même chose avec le mien, mais j'ai eu une erreur en essayant de convertir un nvarchar en une colonne de type de données int. J'ai regardé MSDN et j'ai essayé ce qui suit: 1) Ajout des colonnes au DataTable avec les noms/types/clés primaires appropriés de tblEmployees. 2) Ajout du TableMapping au DataAdapter, bien que je ne sois pas sûr à 100% que j'ai la syntaxe sur cette partie droite. Je fais:
adapter.TableMappings.Add("work", "dbo.tblEmployees");
pour cela. Le DataTable est nommé "work", mais je ne suis pas sûr d'avoir la bonne syntaxe, je mets le nom de la table tel qu'il apparaît dans SQL Server Management Studio mais je ne sais pas comment je le testerai s'il est correctement lié.
Merci pour toute aide que vous pouvez fournir. Je me suis cogné la tête au point que je suis sur le point d'approcher mon but d'une manière totalement différente et de jeter ce que j'ai.
utiliser les guillemets dans SELECT * FROM tblEmployees OU Name = "+ firstSSN -> Name = "ZzzName" – garik
String.Format (" SELECT * FROM tblEmployees OU Name = '{0}' », firstSSN) – garik
Doh! Je ne peux pas croire que j'ai oublié ça, merci beaucoup. – Nick