我用这个查询字符串:SQL语句引起错误
string queryString = "SELECT email_uzivatele from Reklama where email_uzivatele like '%" + @email_uzivatele + "%'";
而且在控制台应用程序进行测试。
当字符串是这样的:
string queryString = "SELECT * from Reklama where email_uzivatele like '%" + @email_uzivatele + "%'";
它工作正常。但是,当我选择这样的特定列:
string queryString = "SELECT email_uzivatele from Reklama where email_uzivatele like '%" + @email_uzivatele + "%'";
这是行不通的,它是导致此错误:
System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Int32.Parse(String s)
at Smart.Advertising.DatabaseLayer.AdvertDatabaseLayer.SelectByEmail(String email_uzivatele) in f:\BP\SmartAdvertising.GuiMvc\Smart.Advertising.DatabaseLayer\AdvertDatabaseLayer.cs:line 228
我不明白为什么....
请你可以帮我吗?
编辑:这是我的控制台aplication更多的代码:
namespace ConsoleApplication1
{
class Program
{
public static void Main(string[] args)
{
AdvertDatabaseLayer.Instance.SelectByEmail("jan");
}
}
}
而此行是导致错误:
AdvertDatabaseLayer.Instance.SelectByEmail("jan");
这是我使用的查询字符串数据库层:
public List<Advert> SelectByEmail(string email_uzivatele)
{
string queryString = "SELECT email_uzivatele from Reklama where email_uzivatele like '%" + @email_uzivatele + "%'";
SqlCommand command = new SqlCommand(queryString, Connection);
command.Parameters.AddWithValue("@email_uzivatele", "");
try
{
SqlDataReader reader = command.ExecuteReader();
List<Advert> advert = new List<Advert>();
while (reader.Read())
{
Advert a = new Advert();
a.id_reklamy = int.Parse(reader[0].ToString());
a.nazev_reklamy = reader[1].ToString();
a.typ_reklamy = reader[2].ToString();
a.cena_reklamy = int.Parse(reader[3].ToString());
a.email_uzivatele = reader[4].ToString();
a.datumz = reader[5].ToString();
a.datumk = reader[6].ToString();
Console.WriteLine("email_uzivatele: " + " " + " " + a.email_uzivatele);
advert.Add(a);
}
reader.Close();
return advert;
}
catch (Exception ex)
{
chyba.zapsat_do_souboru(ex.Message);
Console.OpenStandardOutput();
Console.WriteLine(ex);
//zalogovat chybu
return null;
}
}
请发布更多的代码从你的控制台应用程序。这可能是您如何阅读输入的问题。 – BPS
现在我编辑了我的帖子,并添加了更多来自控制台应用程序的代码。 –
添加的代码似乎与您的SQL查询没有任何关系?!? –