Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / 2 таблицы в процеруре, а не 1 HEEEEELP / 3 сообщений из 3, страница 1 из 1
31.03.2004, 11:00
    #32463405
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы в процеруре, а не 1 HEEEEELP
Всем привет!

Пытаюсь адаптировать чужой код под себя:


<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.SQLClient" %>



<script runat="server" language="VB">

Protected SQLStmt As String = "SELECT CompanyName, ContactName, ContactTitle, Phone, Fax FROM Customers"



Sub Page_Load(Source As Object, E As EventArgs)

If Not Page.IsPostBack Then

SQLStatement.Text = SQLStmt

BindData()

End If

End Sub



Sub BindData()

Dim myDataSet As New DataSet

Dim myDataSetCommand As SQLDataAdapter

Dim ConString As String



ConString ="server=localhost;database=Northwind;uid=YOURUSERID;pwd=YOURPASSWORD;Trusted_Connection=yes"

myDataSetCommand = New SQLDataAdapter(SQLStatement.Text, ConString)

myDataSetCommand.fill(myDataSet, "Customers")



myDataGrid.DataSource = myDataSet.Tables("Customers").DefaultView

myDataGrid.DataBind()

End Sub



Sub PageIndexChanged_OnClick(Source As Object, E As DataGridPageChangedEventArgs)

MyDataGrid.CurrentPageIndex = e.NewPageIndex

BindData()

End Sub



Sub SortCommand_OnClick(Source As Object, E As DataGridSortCommandEventArgs)

SQLStatement.Text = SQLStmt & " ORDER BY " & E.SortExpression

BindData()

End Sub

</script>

<style>

.DataGrid {font:x-small Verdana, Arial, sans-serif}

</style>



<title>ASPExpress.com - Paging AND Sorting in the DataGrid</title>

</head>

<body>

<div align="center">Paging And Sorting Together with ASP.Net </div>

<form runat="server" method="post">



<asp:DataGrid runat="server" id="myDataGrid"

borderwidth="5"

bordercolor="black"

Borderstyle="double"

PagerStyle-VerticalAlign="top"

Cellpadding="4"

Cellspacing="0"

ShowHeader="True"

CssClass="DataGrid"

HeaderStyle-ForeColor="Black"

HeaderStyle-Font-Bold="True"

AllowSorting="True"

OnSortCommand="SortCommand_OnClick"

AllowPaging="True"

OnPageIndexChanged="PageIndexChanged_OnClick"

PageSize="10"

width="100%"

HeaderStyle-BackColor="#aaaadd"

AlternatingItemStyle-BackColor="#eeeeee"

PagerStyle-Backcolor="#aaaadd"

PagerStyle-Forecolor="Black"

PagerStyle-HorizontalAlign="center"

PagerStyle-Mode="NumericPages"

PagerStyle-BorderStyle="Inset"



/>

</form>

<asp:Label id="SQLStatement" runat="server" Visible="false" />

</body>

</html>



При запросе страницы данные выводятся корректно (единственное - не работает сама сортировка).

У меня есть процедура, хранимая на сервере, в которой используются 3 таблицы, а не одна.


myDataSetCommand.fill(myDataSet, "Customers")
myDataGrid.DataSource = myDataSet.Tables("Customers").DefaultView


Как мне прописать этот момент?
...
Рейтинг: 0 / 0
31.03.2004, 11:22
    #32463463
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы в процеруре, а не 1 HEEEEELP
>У меня есть процедура, хранимая на сервере, в которой используются 3 таблицы, а не одна.

Если вы хотели сказать что хранимая процедура возвращает 3 result set, то
так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
myDataSetCommand.fill(myDataSet)
If myDataSet.Tables.Count = 3  Then
   myDataSet.Tables( 0 ).TableName =  "firstTableName" 
   myDataSet.Tables( 1 ).TableName =  "secondTableName" 
   myDataSet.Tables( 2 ).TableName =  "thirdTableName" 
Else
  MsgBox( "Возратилось не три " )
End If


Соответственно 3 результата находятся в коллекции Tables и представляют собой экземпляры класса DataTable.

Если хотите например записи первого DataTable вывести в грид, то это можно сделать например так:
Код: plaintext
1.
2.
myDataGrid.DataSource = myDataSet
myDataGrid.DataMember =  "firstTableName"  
...
Рейтинг: 0 / 0
31.03.2004, 11:55
    #32463558
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы в процеруре, а не 1 HEEEEELP
Если вы хотели сказать что хранимая процедура возвращает 3 result set, то
так:


Нет, не возвращает 3 result set!

Ситуация такая:

Есть процедура, которая храниться на сервере:

CREATE PROCEDURE dbo.name
AS
SET NOCOUNT ON
SELECT
CompanyName,
ContactName,
ContactTitle,
Phone,
Fax
FROM
dbo.partners AS pa,
dbo.price AS pr

GO



В строке Protected SQLStmt As String = "SELECT CompanyName, ContactName, ContactTitle, Phone, Fax FROM Customers"
прописываю
Protected SQLStmt As String = "exec dbo.name"


Данные выводятся но не сортируются.
Выводит такую ошибку при клике по какому-то из заголовков:
Код: plaintext
1.
2.
3.
4.
5.
Line  52 : 
Line  53 : 
Line  54 :    myDataGrid.DataSource = myDataSet.Tables( "Customers" ).DefaultView
Line  55 : 
Line  56 :    myDataGrid.DataBind()
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / 2 таблицы в процеруре, а не 1 HEEEEELP / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]