Nu är jag fast igen. Du har bara return i din else sats, du måste även ha i din if sats Eller:Not all records path return a value
I från en knapp skickar jag...
<code>
string svar = KollaKundnummer();
if(svar=="OK")
{
BytEnabled();
string[]AllaVärden = new String[11];
int a = 0;
foreach(TextBox t in tr)
{
AllaVärden[a]=t.Text;
if(AllaVärden[a]=="")
{
AllaVärden[a]=" ";
}
a++;
}
if(ny==true)
{
//NyKund(AllaVärden);
}
else
{
//UppdateraKund(AllaVärden);
}
}
else
{
MessageBox.Show(svar,"Ogiltligt firmanamn");
}
</code>
...detta tas imot här:
<code>
private string KollaKundnummer()
{
string k = textBox2.Text;
string r = "OK";
if(k=="")
{
r="Du har inte angivet något firmanamn";
}
else
{
string SQL ="SELECT Firma FROM t_kunder WHERE Firma ='" + k + "'";
da2 = new SqlDataAdapter(SQL,con);
ds2 = new DataSet("frånKunder");
con.Open();
da2.Fill(ds2,"frånKunder");
con.Close();
int g = ds2.Tables["frånKunder"].Rows.Count;
if(g==1 & ny == true)
{
r="Du har angivet ett firmanamn som redan existerar";
}
return r;
}
}
</code>
Errot jag fär:
<code>
E:\SAW_Registrering\SAW_Registrering\Form1.cs(872): 'SAW_Registrering.Form1.KollaKundnummer()': not all code paths return a value
</code>
Jag har kollat och dubbel kollat, koden skall se ut så här, men jag får hela tiden detta fel. Några bra ideer?Sv: Not all records path return a value
<code>
if(k=="")
{
r="Du har inte angivet något firmanamn";
//Här ska du också ha en return.....
}
else
{
string SQL ="SELECT Firma FROM t_kunder WHERE Firma ='" + k + "'";
da2 = new SqlDataAdapter(SQL,con);
ds2 = new DataSet("frånKunder");
con.Open();
da2.Fill(ds2,"frånKunder");
con.Close();
int g = ds2.Tables["frånKunder"].Rows.Count;
if(g==1 & ny == true)
{
r="Du har angivet ett firmanamn som redan existerar";
}
return r;
}
</code>Sv: Not all records path return a value
<code>
private string KollaKundnummer()
{
string k = textBox2.Text;
string r = "OK";
if(k=="")
{
r="Du har inte angivet något firmanamn";
}
else
{
string SQL ="SELECT Firma FROM t_kunder WHERE Firma ='" + k.Replace("'","''") + "'";
da2 = new SqlDataAdapter(SQL,con);
ds2 = new DataSet("frånKunder");
con.Open();
da2.Fill(ds2,"frånKunder");
con.Close();
int g = ds2.Tables["frånKunder"].Rows.Count;
if(g==1 & ny == true)
{
r="Du har angivet ett firmanamn som redan existerar";
}
}
return r;
}
</code>
TIPS!
Se till att göra en Replace på tecknet ' till att bli '' för din k variabel som du använder när du bygger ihop din Sql-fråga, annars kan andra bryta din sql-fråga och utföra kommandon som som delete etc, eller använd SqlParametrar objektet vilket jag skulle rekommendera.
/Fredrik Normén NSQUARED2