Ich versuche, eine boolesche Rückkehrfunktion zu erstellen, die den Wert aus dem Textfeld überprüfen würde, überprüfen Sie mit dem Datenleser aus einer Tabelle, ob sie eine Übereinstimmung gefunden haben oder nicht und Dann gebe ich einen booleschen Wert zurück. Ich habe diese Funktion schon seit einiger Zeit benutzt und es funktioniert gut.Probleme mit der Rückgabe boolescher Werte von einer Funktion
public Boolean testname()
{
Boolean test=false;
SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\noewayout\Documents\Project.mdf;Integrated Security=True;Connect Timeout=30");
SqlCommand cmd = new SqlCommand("select CNAME from CUSTOMER", conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
string cname = "";
while (dr.Read())
{
cname = Convert.ToString(dr["CNAME"]);
if (cname == textBox1.Text.ToString())
{
test = true;
return test;
}
}
conn.Close();
return test;
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{ MessageBox.Show("Please type in Customer Name"); }
else
{
Boolean boo = testname();
if (boo == false)
{
MessageBox.Show("Invalid Customer Name");
}
else if (boo == true)
{
try
{
SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\noewayout\Documents\Project.mdf;Integrated Security=True;Connect Timeout=30");
SqlCommand cmd = new SqlCommand("select ONAME,PRICE,QTY from OIL_TYPE,SALEOIL,CUSTOMER where OIL_TYPE.OID=SALEOIL.OID and CUSTOMER.CID=SALEOIL.CID and CNAME='" + textBox1.Text.ToString() + "'", conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
int qty = 0;
int price = 0;
string oname = "";
while (dr.Read())
{
oname = Convert.ToString(dr["ONAME"]);
qty = Convert.ToInt32(dr["QTY"]);
price = Convert.ToInt32(dr["PRICE"]);
int tcost = qty * price;
MessageBox.Show("Oil Name\t\tQuantity\tPrice\tTotal Cost\n" + oname + " \t" + qty + "\t" + price + "\t" + tcost);
}
conn.Close();
}
catch (SqlException) { MessageBox.Show("Error!!"); }
}
}
}
Allerdings habe ich Probleme mit dieser einfachen Check-Methode für die letzten paar Stunden.
public Boolean testname()
{
Boolean test = false;
SqlConnection conn = new SqlConnection(dbsource);
SqlCommand cmd = new SqlCommand("select Fid from Firearm", conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
string tfid = "";
while (dr.Read())
{
tfid = Convert.ToString(dr["Fid"]);
if (tfid == textBox6.Text.ToString())
{
test = true;
return test;
}
}
conn.Close();
return test;
}
private void searchbtn_Click(object sender, EventArgs e)
{
string mysql = "select * from Firearm where Fid= '" + textBox6.Text + "'";
if (textBox6.Text == "")
{ MessageBox.Show("Please fill the text field"); }
else
{
Boolean boo = testname();
if (boo == false)
{
MessageBox.Show("Invalid Fid");
}
else if (boo == true)
{
try
{
SqlConnection conn = new SqlConnection(dbsource);
SqlCommand cmd = new SqlCommand(mysql, conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = dt;
dataGridView1.Show();
}
catch (SqlException) { MessageBox.Show("Error!!!"); }
}
}
}
Es hielt falsche Rückkehr, obwohl ich die richtige ID eingegeben value.I've alles versucht, die ich kenne weg, aber immer noch keine go.Any Hilfe oder Vorschlag wäre great.Thanks
Ist Ihr Fid Spalte Datentyp 'char' oder' nchar' statt 'varchar'? –
Sie müssen nicht .ToString() auf txtBox.Text -Eigenschaft als Text-Eigenschaft ist bereits von String-Typ –
@Manish Dalal Ja, Fid ist varchar (20) und ich habe auch versucht, .ToString(), aber es ist immer noch falsch zurückkehrend. – noeway