2016-02-23 3 views
-2

У меня есть автоматический класс следующим образомПередача C# глобальной переменной SQL запроса

namespace UI.Controllers 
{ 
    public class Auto 
    { 
     user = 'raven'; 

    public static string user 
     { 
      get; 
      set; 
     } 
    } 
} 

Теперь, так как я уже упоминал переменную как глобальную переменную, я могу использовать эту переменную в других .cs файлов с помощью это таким образом.

string getusername = Auto.user; 

Проблема возникает, когда я пытаюсь запросить таблицу SQL с этим именем пользователя. Вот что я намерен делать.

SELECT * FROM users_table WHERE NAME = [put user details here];

[] кронштейн знак указывается имя пользователя. т. е. ворон должен быть размещен там динамически

Я пробовал варианты ниже, но это не сработало.

SELECT * FROM users_table WHERE NAME= "@Auto.user"; 
SELECT * FROM users_table WHERE NAME= "Auto.user"; 
SELECT * FROM users_table WHERE NAME= Auto.user; 
SELECT * FROM users_table WHERE NAME= & Auto.user &; 
SELECT * FROM users_table WHERE NAME= & "Auto.user" &; 

Это дает мне ошибку о том, что The name Auto doesn't exist in current context

Может кто-то предложить мне, если я пытаюсь правильно. ?

Вот фактический SQL-запрос

readonly string USERNAME = @"SELECT * FROM users_table WHERE NAME = "; 


public List<Users> GetUserName() 
    { 
     string query = USERNAME + "@name"; 
     return this._users.Get(query, new { name = Auto.user }); 
    } 
+0

Можете ли вы опубликовать полный код, который показывает, как вы пытаетесь выполнить запрос? –

+0

@ GlorinOakenfoot- все запросы помещаются в один файл для проекта. сегрегация вещей была сделана. я поместил все, что мог. gimme a sexc – Ayesha

+0

@ GlorinOakenfoot- добавлен код. PLS посмотреть – Ayesha

ответ

2

Если вы просто хотите передать значение Auto.user переменной запроса просто использовать string.Format

readonly string USERNAME = @"SELECT * FROM users_table WHERE NAME = {0}"; 

public List<Users> GetUserName() 
{ 
    var query = string.Format(USERNAME, Auto.user); 
    return this._users.Get(query); 
} 

Без большего понимания о пути запрос выполняется внутри исполняющего запроса. Я не могу понять, как это сделать. Если вы обновите вопрос с дополнительной информацией о типе и реализации _users, я могу дать вам лучший ответ.

+0

Спасибо Диогу, я понимаю и спасибо за ответ. можете ли вы, в общем, дать мне знать, как передать глобальную переменную в обычный SQL-запрос. я попытаюсь затем разобраться на сложной стороне моего кода. – Ayesha

+0

Это всегда зависит от того, как вы делаете что-то и с ORM, который вы используете, но одно можно сказать наверняка, глобальные переменные являются признаком плохих вещей, вы следует избегать их как можно больше. –