Пользовательский SQL в Gridview - PullRequest
0 голосов
/ 18 мая 2011

как поместить данные в сетку с помощью программного кода?Мне нужен SQL-оператор, у которого есть var:

"SELECT Mod_Naam, Mod_Omschrijving FROM Model WHERE Mod_ID = " + modid + " ", con

Я пробовал использовать мастер, но там я не могу использовать var, поэтому мне приходится использовать программный код (никогда раньше этого не делал и не знаю как)

Любая помощь приветствуется!

thx,

Ответы [ 3 ]

2 голосов
/ 18 мая 2011
using (SqlConnection c = new SqlConnection(
    Properties.Settings.Default.DataConnectionString))
    {
    c.Open();
    // Create new DataAdapter
    using (SqlDataAdapter a = new SqlDataAdapter("SELECT Mod_Naam, Mod_Omschrijving FROM Model WHERE Mod_ID = @modid ", c))
    {
        a.SelectCommand.Parameters.AddWithValue("modid", "");

        // Use DataAdapter to fill DataTable
        DataTable t = new DataTable();
        a.Fill(t);

        // GridView1.DataSource = t; // <-- From your designer
    }
    }
2 голосов
/ 18 мая 2011

Во-первых, вам нужно получить данные из вашей базы данных в типе, который может обрабатывать GridView.С DataTable все в порядке.

Следующий код заполняет DataTable "Models" данными, полученными из запроса.

// Assuming 'connection' is a valid connection to your database
string modid = "134"; // or int modid = 134;
string query = "SELECT Mod_Naam, Mod_Omschrijving 
                FROM Model 
                WHERE Mod_ID = " + modid;
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
DataSet models = new DataSet();
adapter.Fill(models , "Models");

Далее вы хотите, чтобы данные были присоединены кваш GridView.Вы можете поместить это в Page_Load вашей страницы и в область if(!Page.IsPostBack), если хотите загружать данные только при загрузке страницы, но не при обратной передаче.

if (models.Tables.Count > 0)
{
    myGridView.DataSource = models;
    myGridView.DataBind();
}

Пожалуйстаобратите внимание, что лучше всего защитить ваши запросы от SQL-инъекций

Для получения дополнительной информации о выполнении безопасных запросов;Я бы направил вас на страницу MSDN о подготовленных заявлениях .

2 голосов
/ 18 мая 2011

Вы могли бы сделать что-то вроде

    SqlConnection con = new SqlConnection("");//put connection string here
    SqlCommand objCommand = new SqlCommand("SELECT FirstName, LAstName from MyTable where FirstName = '" + "ABC" + "'", con);//let MyTable be a database table
con.Open();
    sqlDataReader dr = objCommandExecuteReader();
myGridView.DataSource = dr;//let myGridView be your GridView name
myGridView.DataBind();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...