在我的 .aspx 页面上循环 SQL 服务器结果
Looping through SQL Server results on my .aspx page
我是 ASP.NET 和 C# 的新手。我熟悉 SQL 服务器,并且在从传统的 ASP 世界转移过来的过程中遇到了麻烦。
CREATE TABLE dbo.Chapters
(
ChapterID NUMERIC,
ChapterName NVARCHAR,
ChapterDesc NVARCHAR
)
SELECT mChapterID, ChapterName, ChapterDesc
FROM Chapters
<table>
<tr>
<th>ID</th>
<th>CHAPTER NAME</th>
<th>DESCRIPTION</th>
</tr>
<tr>
<td><input type="checkbox" name="chaptid" value="<%=Chapters.ChapterID %>"></td>
<td><%=Chapters.ChapterName %></td>
<td><%=Chapters.ChapterDesc %></td>
</tr>
<tr>
<td>...</td>
</tr> // 10 rows
</table>
查询返回了 10 行。如何在我的 table 行中循环遍历它们以便显示所有 10 个?
编辑:我添加了一个复选框作为第一个字段
如果你想一次性在 SQL 服务器中创建 XML/HTML...
例子
Declare @YourTable Table ([ChapterID] int,[ChapterName] varchar(50),[ChapterDesc] varchar(50))
Insert Into @YourTable Values
(1,'Chapter 1','This is the 1st chapter')
,(2,'Chapter 2','This is the 2nd chapter')
Select (Select th='ID'
,null
,th='Chapter Name'
,null
,th='Description'
,null
For XML Path('tr'),type)
,(Select td= ( Select [@type]='checkbox'
,[@name]='chaptid'
,[@value]=[ChapterID]
For XML Path('input'),type)
,null
,td=[ChapterName]
,null
,td=[ChapterDesc]
From @YourTable
For XML Path('tr'),Type)
For XML Path(''),Root('table')
Returns
<table>
<tr>
<th>ID</th>
<th>Chapter Name</th>
<th>Description</th>
</tr>
<tr>
<td>
<input type="checkbox" name="chaptid" value="1" />
</td>
<td>Chapter 1</td>
<td>This is the 1st chapter</td>
</tr>
<tr>
<td>
<input type="checkbox" name="chaptid" value="2" />
</td>
<td>Chapter 2</td>
<td>This is the 2nd chapter</td>
</tr>
</table>
John Cappelletti 为我指明了方向,这就是我最终想到的。谢谢约翰!
CREATE TABLE dbo.Chapters
(
ChapterID NUMERIC,
ChapterName NVARCHAR,
ChapterDesc NVARCHAR
)
DECLARE @body NVARCHAR(MAX)
SET @body = N'<table>'
+ N'<tr><th>Check</th><th>Chapter Name</th><th>Chapter Desc</th></tr>'
+ CAST((
SELECT '<input type="checkbox" name="ChapterID" value="'+CONVERT(varchar(10),[c].[mChapterID])+'">' AS td,
'<span style="font-weight: bold;">'+[c].[ChapterName]+'</span>' AS td,
[c].[ChapterDesc] AS td
FROM [ModuleChapters] c
WHERE [c].[inActive] = 0
AND [c].[isDeleted] = 0
FOR XML RAW('tr'), ELEMENTS
) AS NVARCHAR(MAX))
+ N'</table>'
SELECT tBody = @body
我是 ASP.NET 和 C# 的新手。我熟悉 SQL 服务器,并且在从传统的 ASP 世界转移过来的过程中遇到了麻烦。
CREATE TABLE dbo.Chapters
(
ChapterID NUMERIC,
ChapterName NVARCHAR,
ChapterDesc NVARCHAR
)
SELECT mChapterID, ChapterName, ChapterDesc
FROM Chapters
<table>
<tr>
<th>ID</th>
<th>CHAPTER NAME</th>
<th>DESCRIPTION</th>
</tr>
<tr>
<td><input type="checkbox" name="chaptid" value="<%=Chapters.ChapterID %>"></td>
<td><%=Chapters.ChapterName %></td>
<td><%=Chapters.ChapterDesc %></td>
</tr>
<tr>
<td>...</td>
</tr> // 10 rows
</table>
查询返回了 10 行。如何在我的 table 行中循环遍历它们以便显示所有 10 个?
编辑:我添加了一个复选框作为第一个字段
如果你想一次性在 SQL 服务器中创建 XML/HTML...
例子
Declare @YourTable Table ([ChapterID] int,[ChapterName] varchar(50),[ChapterDesc] varchar(50))
Insert Into @YourTable Values
(1,'Chapter 1','This is the 1st chapter')
,(2,'Chapter 2','This is the 2nd chapter')
Select (Select th='ID'
,null
,th='Chapter Name'
,null
,th='Description'
,null
For XML Path('tr'),type)
,(Select td= ( Select [@type]='checkbox'
,[@name]='chaptid'
,[@value]=[ChapterID]
For XML Path('input'),type)
,null
,td=[ChapterName]
,null
,td=[ChapterDesc]
From @YourTable
For XML Path('tr'),Type)
For XML Path(''),Root('table')
Returns
<table>
<tr>
<th>ID</th>
<th>Chapter Name</th>
<th>Description</th>
</tr>
<tr>
<td>
<input type="checkbox" name="chaptid" value="1" />
</td>
<td>Chapter 1</td>
<td>This is the 1st chapter</td>
</tr>
<tr>
<td>
<input type="checkbox" name="chaptid" value="2" />
</td>
<td>Chapter 2</td>
<td>This is the 2nd chapter</td>
</tr>
</table>
John Cappelletti 为我指明了方向,这就是我最终想到的。谢谢约翰!
CREATE TABLE dbo.Chapters
(
ChapterID NUMERIC,
ChapterName NVARCHAR,
ChapterDesc NVARCHAR
)
DECLARE @body NVARCHAR(MAX)
SET @body = N'<table>'
+ N'<tr><th>Check</th><th>Chapter Name</th><th>Chapter Desc</th></tr>'
+ CAST((
SELECT '<input type="checkbox" name="ChapterID" value="'+CONVERT(varchar(10),[c].[mChapterID])+'">' AS td,
'<span style="font-weight: bold;">'+[c].[ChapterName]+'</span>' AS td,
[c].[ChapterDesc] AS td
FROM [ModuleChapters] c
WHERE [c].[inActive] = 0
AND [c].[isDeleted] = 0
FOR XML RAW('tr'), ELEMENTS
) AS NVARCHAR(MAX))
+ N'</table>'
SELECT tBody = @body