Несколько источников данных в DataGrid (ASP.NET) - PullRequest
1 голос
/ 04 февраля 2010

Интересно, сможем ли мы реализовать и извлечь данные из разных источников данных в DataGrid. Например, у меня есть 3 хранимые процедуры:

Я перетащил 3 источника данных и настроил их в каждой хранимой процедуре.

1-ые хранимые процедуры: возвращает @id и @name 2-ые хранимые процедуры: возвращает @name, @server и @location 3 хранимые процедуры: возвращает @age и @ лет

и я хочу показать только @id из 1-го SPROC, @server из 2-го SRPOC и @age из 3-го SPROC и связать его с одной DataGrid.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 04 февраля 2010

Нельзя установить несколько источников данных для любого элемента управления.

Почему бы не создать хранимую процедуру, которая получает всю необходимую информацию за один раз? Затем вы можете привязать результат к вашей DataGrid.

1 голос
/ 10 сентября 2012

Вы можете выполнить запрос внутреннего соединения в sqldatasource в свойстве selectcommand, чтобы выбрать то, что вы хотите из БД, а затем получить доступ к datagrid.datasourceID из элемента управления sqldatasource.

1 голос
/ 04 февраля 2010

Я бы согласился с Одедом. Наличие одного источника делает его простым и легким в управлении / отладке. Но если вы предпочитаете иметь мультиплетные источники данных, я бы заполнил набор данных этими источниками данных, сгенерировал бы представление данных из этого набора данных (выбирая соответствующие данные) и связал бы представление с сеткой данных. Пример из здесь

private void btnLoadData_Click(object sender, System.EventArgs e)
{
    string connectionString = "server=P-III; database=programmersheaven;" +
                      "uid=sa; pwd=;";
    SqlConnection conn = new SqlConnection(connectionString);
    string cmdString = "SELECT * FROM article";
    SqlDataAdapter dataAdapter = new SqlDataAdapter(cmdString, conn);
    DataSet ds = new DataSet();
    dataAdapter.Fill(ds, "article");
    cmdString = "SELECT * FROM author";
    dataAdapter = new SqlDataAdapter(cmdString, conn);
    dataAdapter.Fill(ds, "author");
    DataRelation relation = new DataRelation("ArtAuth", 
            ds.Tables["author"].Columns["authorId"], 
            ds.Tables["article"].Columns["authorId"] 
            );
    ds.Relations.Add(relation);
    DataView dv = new DataView(ds.Tables["author"]);
    dgDetails.DataSource = dv;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...