Hallo D.,
also normal solltest Du wegen SQL Injection und anderen sicherheitskritischen Dingen natürlich SqlParameter etc. benutzen.
Aber das ist hier nicht der Fehler, denn der Code sieht im Prinzip lauffähig aus. (gut, es werden ständig die Textboxen "überschrieben", was natürlich eher wenig Sinn macht - aber es ist wohl nur ein Test).
Wenn er nicht in die while Schleife hereingeht (und keine Exception passiert) ist es normal einfach so, dass die Abfrage keine Ergebnisse hat!
Prüfe die Schreibweise der Felder und den Wert der "txtSetFA.Text" zur Zeit der Abfrage!
_____________________________
Also mit folgendem Code funktioniert es bei mir bei einer Northwind Datenbank (es werden Daten angezeigt):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WinDataReaderDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
tabControl1.TabPages[1].Enter += new EventHandler(tabPage2_Enter);
}
private void tabPage2_Enter(object sender, EventArgs e)
{
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
sb.DataSource = ".";
sb.InitialCatalog = "Northwind";
sb.IntegratedSecurity = true;
string strConnStr = sb.ToString();
SqlConnection conn = new SqlConnection(strConnStr);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
txtSetFA.Text = "Owner";
cmd.CommandText = "SELECT ContactName, City, Address FROM Contacts " +
"WHERE ContactTitle = '" + txtSetFA.Text + "'";
try
{
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
try
{
while (dr.Read())
{
txtFaStreet.Text = dr[0].ToString();
txtFaPLZ.Text = dr[1].ToString();
txtFaCity.Text = dr[2].ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
dr.Close();
conn.Close();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
ciao Frank