Вы не можете нарушить нормальные строковые литералы на несколько строк, а также ваше закрытие цитата неуместна:
SqlConnection con = new SqlConnection("Data Source=local;Initial Catalog=DB;User ID=sa;Password=pass");
или используйте стеновой литерал, который вы можете получить br ЕАК по нескольким направлениям:
SqlConnection con = new SqlConnection(
@"Data Source=local;
Initial Catalog=DB;
User ID=sa;
Password=pass");
Тем не менее, ваш код уязвим для атак SQL injection. Для вас самих и ради ваших пользователей вам действительно нужно использовать параметризованные запросы, а не конкатенировать ваши SQL-запросы, подобные этому.
Вот краткий пример:
using(var con = new SqlConnection(...))
{
var cmd = new SqlCommand("select * from Table1 where ID = @ID", con);
con.Open();
cmd.Parameters.AddWithValue("@ID", LbLID.Text.Trim());
var da = new SqlDataAdapter(cmd);
var dt = new DataTable();
da.Fill(dt);
lblS1.Text = dt.Rows[0][4].ToString();
lblS1.DataBind();
}
Некоторые советы: Вы должны избегать использования select *
запросов, так как ваша схема базы данных может измениться, и это нарушило бы существующий код. Было бы лучше выбрать только интересующую вас колонку и сделать простой звонок до ExecuteScalar
.
Какова ценность 'LbLID.Text.Trim()'? – Szymon