Ik ben bezig met een windows programma te schrijven die gegevens moet verwerken uit een Microsoft SQL server (versie 2000) database.
Het probleem is dat ik uit de tabel een veld moet lezen die de definitie "Uniqueidentifier" heeft. Het lukt me om het veld als string uit de database te halen maar als ik dan later in het programma (in een andere tabel) een select query doe met als "WHERE id = variabele" krijg ik niet de juiste records terug.
Nu heb ik gevonden dat het beter is om het veld als binary uit de database te halen en die dan te gebruiken in de select query, maar de vraag is, hoe doe ik dat. Hoe haal ik een veld van het type uniqueidentifier uit een database en plaats het in een binary variabele zodat ik deze later weer kan gebruiken in een andere select query?
Voor de duidelijkheid, wat ik nu heb:
Nu krijg ik netjes een string terug met bijvoorbeeld de waarde {126FD1AB-B34E-45D9-96B9-71E83B7C63D2}.
Als ik nu in een volgend select query die variabele ga gebruiken:
Krijg ik niet de gewenste records terug.
Als ik het goed begrijp is het omdat het beter is om op een binary waarde te selecteren, zoals bijvoorbeeld: 0xA70D7183FE3A2246A6A93DBDAA3CA201
Hoe krijg ik deze waarde uit de database en plaats het in een variabele zodat ik hem later kan gebruiken voor de select query? In het boek wat ik van C# heb staat namelijk geen Data type voor een binary waarde, ook via google kon ik niet echt iets vinden, alleen maar hoe je een binaire waarde uit een com poort leest.
Het probleem is dat ik uit de tabel een veld moet lezen die de definitie "Uniqueidentifier" heeft. Het lukt me om het veld als string uit de database te halen maar als ik dan later in het programma (in een andere tabel) een select query doe met als "WHERE id = variabele" krijg ik niet de juiste records terug.
Nu heb ik gevonden dat het beter is om het veld als binary uit de database te halen en die dan te gebruiken in de select query, maar de vraag is, hoe doe ik dat. Hoe haal ik een veld van het type uniqueidentifier uit een database en plaats het in een binary variabele zodat ik deze later weer kan gebruiken in een andere select query?
Voor de duidelijkheid, wat ik nu heb:
C#:
1
2
3
4
5
6
7
| SqlCommand cmd1 = Conn.CreateCommand(); cmd1.CommandText = "SELECT * FROM " + table_Project_Relaties + " WHERE ProjectNr = '" + textBoxOffertenummer.Text + "'"; SqlDataReader rdr1 = cmd2.ExecuteReader(); while (rdr1.Read()) { string cmp_id = rdr1.GetValue(rdr1.GetOrdinal("cmp_wwn")).ToString(); } |
Nu krijg ik netjes een string terug met bijvoorbeeld de waarde {126FD1AB-B34E-45D9-96B9-71E83B7C63D2}.
Als ik nu in een volgend select query die variabele ga gebruiken:
C#:
1
2
3
4
5
6
7
| SqlCommand cmd2 = Conn.CreateCommand(); cmd2.CommandText = "SELECT * FROM " + table_Relaties_adressen + " WHERE Account='" + cmp_id + "'"; SqlDataReader rdr2 = cmd2.ExecuteReader(); while (rdr2.Read()) { // voorbeeld } |
Krijg ik niet de gewenste records terug.
Als ik het goed begrijp is het omdat het beter is om op een binary waarde te selecteren, zoals bijvoorbeeld: 0xA70D7183FE3A2246A6A93DBDAA3CA201
Hoe krijg ik deze waarde uit de database en plaats het in een variabele zodat ik hem later kan gebruiken voor de select query? In het boek wat ik van C# heb staat namelijk geen Data type voor een binary waarde, ook via google kon ik niet echt iets vinden, alleen maar hoe je een binaire waarde uit een com poort leest.