J'ai récemment essayé de trouver un moyen de faire fonctionner les requêtes paramétrées et je pense que je suis presque là mais que j'obtiens une erreur lors de l'exécution de ma requêteRequête paramétrée - erreur lors de l'exécution d'une requête
est ici le code
Dim LogData2 As sterm.MarkData = New sterm.MarkData()
Dim query As String = ("Select * from openquery (db, 'SELECT * FROM table WHERE [email protected]')")
Dim cmd As New SqlCommand(query)
cmd.Parameters.AddWithValue("@investor", 34)
Dim drCode2a As DataSet = LogData2.StermQ3(query)
Je l'ai débogués et il ne semble pas être mettre le paramètre dans la requête.
"Select * from openquery (db, 'SELECT * FROM table WHERE [email protected]')"
C'est ce que je reçois quand je déboguer la ligne Dim drCode2a As DataSet = LogData2.StermQ3(query)
Toutes les idées ce que je fais mal?
SOLUTION
Voici comment je résolu mon problème
Dim conn As SqlConnection = New SqlConnection("server='h'; user id='w'; password='w'; database='w'; pooling='false'")
conn.Open()
Dim query As New SqlCommand("DECLARE @investor varchar(10), @sql varchar(1000) Select @investor = 69836 select @sql = 'SELECT * FROM OPENQUERY(db,''SELECT * FROM table WHERE investor = ''''' + @investor + ''''''')' EXEC(@sql)", conn)
dgBookings.DataSource = query.ExecuteReader
dgBookings.DataBind()
Merci pour l'aide
Je l'ai fait, mais sans '...' 'et je reçois doivent déclarer @ investor' et si je fais avec le '...' alors je reçois le préfixe de colonne invitée –
@Jamie Taylor Jetez un oeil à la modification que j'ai faite –
Je reçois maintenant 'L'accès de propriété doit affecter à la propriété ou utiliser sa valeur.' –