我的变量有问题。 [英] Problems with my variables.
问题描述
大家好!
(我在ASP.NET工作)
我有一个我的变量存在问题。
所以我必须能够从我的数据库中选择存储在ListBox中的特定名称。因此我制作了这个代码,将所有名称添加到ListBox中(我必须添加名称+空格+名字:
Dim scmdLijstVullen As New SqlCommand
scmdLijstVullen.Connection = GIPSQL1
scmdLijstVullen.CommandText =SELECT Naam,Voornaam FROM tblVerantwoordelijken
Dim sdrLijstVullen As SqlDataReader
GIPSQL1.Open()
sdrLijstVullen = scmdLijstVullen.ExecuteReader
Do while sdrLijstVullen.Read
lstNaamVerantwoordelijkeBewerken.Items.Add(sdrLijstVullen.Item(0).ToString.Trim&& sdrLijstVullen.Item(1).ToString.Trim)
循环
GIPSQL1.Close()
现在我的问题如下:当我从我的ListBox中选择一个名字,我希望能够从我的数据库中获取项目WHERE Name = Name from database AND Firstname = Firstname from database。
数据库中的所有项目都显示在文本框中。
T.他是我已经制作的代码:100%无效。
strNaamVolledigBewerken = lstNaamVerantwoordelijkeBewerken.SelectedItem.ToString
Dim intindexString,intIndexArray As Integer
intIndexArray = 0
Dim arrPositieSpaties()As Integer
strNaamVolledigBewerken = strNaamVolledigBewerken.Trim
for intindexString = 0 to strNaamVolledigBewerken.Length - 1
If strNaamVolledigBewerken.Chars(intindexString)=然后
intIndexArray + = 1
ReDim保留arrPositieSpaties(intIndexArray)
arrPositieSpaties(intIndexArray)= intindexString
结束如果
下一个
Dim intAantalSpaties As Integer
intAantalSpaties = arrPositieSpaties.Length - 1
strVoornaamVBewerken = strNaamVolledigBewerken.Substring(arrPositieSpaties(intAantalSpaties))
strVoornaamVBewerken = strVoornaamVBewerken.Trim
strNaamVBewerken = strNaamVolledigBewerken.Substring(0,arrPositieSpaties(intAantalSpaties) - 1)
strNaamVBewerken = strNaamVBewerken.Trim
尺寸scmdNaamVanVerantwoordelijkeBewerken作为新的SqlCommand
scmdNaamVanVerantwoordelijkeBewerken.Connection = GIPSQL1
scmdNaamVanVerantwoordelijkeBewerken.CommandText = SELECT Naam,Voornaam,adres,Postnummer,Gemeente,Geboortedatum,geslacht,Rijksregisternummer,telefoonnummer,Rekeningnummer FROM tblVerantwoordelijken WHERE Naam ='& Cloetens& '和Voornaam ='& 玛丽亚& '
GIPSQL1.Open()
Dim sdrVerantwoordelijkeID As SqlDataReader
sdrVerantwoordelijkeID = scmdNaamVanVerantwoordelijkeBewerken.ExecuteReader
Do while sdrVerantwoordelijkeID.Read
txtNaamVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(1).ToString
txtVoornaamVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(2).ToString
txtAdresVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(3).ToString
txtPostcodeVerantwoordelijke2.Text =(sdrVerantwoordelijkeID .Item(4))。ToString
txtGmeneeteVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(5).ToString
txtGbeoortedatumVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(6).ToString
DropDownList2.Items.Add( sdrVerantwoordelijkeID.Item(7))。ToString()
txtRijksregisternummerVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(8).ToString
txtTelefoonVerantwoo rdelijke0.Text = sdrVerantwoordelijkeID.Item(9).ToString
txtRekeningnummerVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(10).ToString
Loop
GIPSQL1.Close()
所以真正的问题在这里(SQL命令):
FROM tblVerantwoordelijken WHERE Naam =' & Cloetens& '和Voornaam ='& 玛丽亚& '
当我从我的数据库中输入人名时,填写了texbox,我的程序正常运行。
但是当我尝试用这种方式填写它时:
FROM tblVerantwoordelijken WHERE Naam ='& strNaamVBewerken&'和Voornaam = ''& strNaamVBewerken&'
所以我的猜测是变量有些问题。
有人可以帮助我吗?
尝试使用参数化
查询以避免Sql Injection攻击和这些混淆。
这是最安全的方法。尝试在Google上搜索它。你很容易找到例子。
Hello all!
(I'm working in ASP.NET)
I have a problem with my variables.
So I have to be able to choose specific names from my database wich are stored in a ListBox. Therefore I have made this code which adds all the names to the ListBox (I had to add Name + space + First name:
Dim scmdLijstVullen As New SqlCommand scmdLijstVullen.Connection = GIPSQL1 scmdLijstVullen.CommandText = "SELECT Naam, Voornaam FROM tblVerantwoordelijken" Dim sdrLijstVullen As SqlDataReader GIPSQL1.Open() sdrLijstVullen = scmdLijstVullen.ExecuteReader Do While sdrLijstVullen.Read lstNaamVerantwoordelijkeBewerken.Items.Add(sdrLijstVullen.Item(0).ToString.Trim & " " & sdrLijstVullen.Item(1).ToString.Trim) Loop GIPSQL1.Close()
Now my problem is the following: when I choose a name from my ListBox, I want to be able to take Items from my Database WHERE Name = Name from database AND Firstname = Firstname from database.
All the Items from the database are shown in textboxes.
This is the code I already made: which doesn't work 100%.
strNaamVolledigBewerken = lstNaamVerantwoordelijkeBewerken.SelectedItem.ToString Dim intindexString, intIndexArray As Integer intIndexArray = 0 Dim arrPositieSpaties() As Integer strNaamVolledigBewerken = strNaamVolledigBewerken.Trim For intindexString = 0 To strNaamVolledigBewerken.Length - 1 If strNaamVolledigBewerken.Chars(intindexString) = " " Then intIndexArray += 1 ReDim Preserve arrPositieSpaties(intIndexArray) arrPositieSpaties(intIndexArray) = intindexString End If Next Dim intAantalSpaties As Integer intAantalSpaties = arrPositieSpaties.Length - 1 strVoornaamVBewerken = strNaamVolledigBewerken.Substring(arrPositieSpaties(intAantalSpaties)) strVoornaamVBewerken = strVoornaamVBewerken.Trim strNaamVBewerken = strNaamVolledigBewerken.Substring(0, arrPositieSpaties(intAantalSpaties) - 1) strNaamVBewerken = strNaamVBewerken.Trim Dim scmdNaamVanVerantwoordelijkeBewerken As New SqlCommand scmdNaamVanVerantwoordelijkeBewerken.Connection = GIPSQL1 scmdNaamVanVerantwoordelijkeBewerken.CommandText = "SELECT Naam, Voornaam, adres, Postnummer, Gemeente, Geboortedatum, geslacht, Rijksregisternummer, telefoonnummer, Rekeningnummer FROM tblVerantwoordelijken WHERE Naam ='" & "Cloetens" & "' AND Voornaam ='" & "Maria" & "'" GIPSQL1.Open() Dim sdrVerantwoordelijkeID As SqlDataReader sdrVerantwoordelijkeID = scmdNaamVanVerantwoordelijkeBewerken.ExecuteReader Do While sdrVerantwoordelijkeID.Read txtNaamVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(1).ToString txtVoornaamVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(2).ToString txtAdresVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(3).ToString txtPostcodeVerantwoordelijke2.Text = (sdrVerantwoordelijkeID.Item(4)).ToString txtGmeneeteVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(5).ToString txtGbeoortedatumVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(6).ToString DropDownList2.Items.Add(sdrVerantwoordelijkeID.Item(7)).ToString() txtRijksregisternummerVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(8).ToString txtTelefoonVerantwoordelijke0.Text = sdrVerantwoordelijkeID.Item(9).ToString txtRekeningnummerVerantwoordelijke2.Text = sdrVerantwoordelijkeID.Item(10).ToString Loop GIPSQL1.Close()
So the real problem is here (SQL command):
FROM tblVerantwoordelijken WHERE Naam ='" & "Cloetens" & "' AND Voornaam ='" & "Maria" & "'"
When I just enter the names from people from my database, the texboxes are filled in, and my programme works.
But when I try to fill it in this way:
FROM tblVerantwoordelijken WHERE Naam ='" & strNaamVBewerken & "' AND Voornaam ='" & strNaamVBewerken & "'"
So my guess is that there is something worng with the variables.
Can someone please help me?
Try to useParameterized
Query to avoid Sql Injection attack and these confusions.
That is the safest approach. Try to search on Google about it. You will easily find examples.
这篇关于我的变量有问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!