Therapyx
@Therapyx
Data Science

Select запрос через с#, в чем проблема?

string Query;
            try
            {              
                if (!string.IsNullOrEmpty(txtSelectByDate1.Text) && !string.IsNullOrEmpty(txtSelectByDate2.Text))                
                     Query = "Select * from Purchase where P_Date >= '"+Convert.ToDateTime(txtSelectByDate1.Text).ToString("yyyy-MM-dd") + 
                     "' and P_Date <= '" + Convert.ToDateTime(txtSelectByDate2.Text).ToString("yyyy-MM-dd") + "'";
                SqlCommand cmd = new SqlCommand(Query, cn);
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                gvPurchase.DataSourceID = null;
                gvPurchase.DataSource = dt;
            }

В этой строке на Query выходит ошибка с описанием "Use of unassigned local variable 'Query'"
SqlCommand cmd = new SqlCommand(Query, cn);
Если же убрать эту проверку, то все работает прекрасно.
if (!string.IsNullOrEmpty(txtSelectByDate1.Text) && !string.IsNullOrEmpty(txtSelectByDate2.Text))

Почему так выходит? Или какой способ проверки двух текст боксов на наличие информации подошел бы в этом случае?
  • Вопрос задан
  • 573 просмотра
Решения вопроса 1
@ar4ebaldello
Так зачем вы выполняете запрос, если не инициализируете query?
var dateFromString = txtSelectByDate1.Text;
var dateToString = txtSelectByDate2.Text;

if (!string.IsNullOrEmpty(dateFromString) && !string.IsNullOrEmpty(dateToString))                
{
    var dateFrom = Convert.ToDateTime(dateFromString).ToString("yyyy-MM-dd");
    var dateTo = Convert.ToDateTime(dateToString).ToString("yyyy-MM-dd");
    
    var query = string.Format("Select * from Purchase where P_Date >= '{0}' and P_Date <= '{1}'", dateFrom, dateTo);
    
    var command = new SqlCommand(query, cn);
    var adapter = new SqlDataAdapter(command);
    var table = new DataTable();
    adapter.Fill(table);
    
    gvPurchase.DataSourceID = null;
    gvPurchase.DataSource = table;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы