どのようにタイプのテーブルを返すのですか?私は@Forumsテーブルを返すが、私はエラーを取得する必要がありますスカラーvaiable @Forumsを宣言する必要があります。私のコードのリターンC#のSQL戻り値
DECLARE @Forums Table
(ForumGroup nvarchar(100), Title nvarchar(100), Description nvarchar(400),
ThreadCount int, LastPostBy nvarchar(50), LastPostDate datetime, LastPostTtle nvarchar(100))
insert into @Forums
SELECT ForumGroup = (
CASE WHEN ParentID IS NOT NULL THEN
(SELECT Title FROM Forums WHERE ForumID = F.ParentID)
ELSE
(SELECT Title FROM Forums WHERE ParentID IS NULL)
END),
Title, Description,
ThreadCount = (SELECT COUNT(*) FROM Posts P WHERE P.ForumID = F.ForumID),
LastPostBy = (SELECT TOP 1 AddedBy FROM Posts P WHERE P.ForumID = F.ForumID ORDER BY P.PostID DESC),
LastPostDate = (SELECT TOP 1 AddedDate FROM Posts P WHERE P.ForumID = F.ForumID ORDER BY P.PostID DESC),
LastPostTitle = (SELECT TOP 1 Title FROM Posts P WHERE P.ForumID = F.ForumID ORDER BY P.PostID DESC)
FROM Forums F WHERE ParentID IS NOT NULL
ORDER BY Title
Return @Forums
私は私のEDMXにストアドプロシージャ機能をインポートした後は何もありません:私はあなたがすべてで変数を必要とする理由が見当たらない
public class Forums
{
public List<Forum> GetForums()
{
using (EntityConnection conn = new EntityConnection("name=CMSEntities"))
{
conn.Open();
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = "CMSEntities.sproc_Forums_GetForums";
cmd.CommandType = System.Data.CommandType.StoredProcedure;
using (EntityDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess))
{
List<Forum> forums = new List<Forum>();
while (reader.Read())
{
Forum forum = new Forum(
1,
"",
DateTime.Now,
reader["Title"].ToString(),
reader["Description"].ToString(),
0,
false,
null,
null,
null,
true,
reader["ForumGroup"].ToString(),
1,
null,
DateTime.Now,
null);
forums.Add(forum);
}
return forums;
}
}
}
}
SQLをヒットするために使用しているC#コードを提供できますか? –
C#コードで変数テーブルを定義していますか?そうでない場合、[この記事](http://odetocode.com/code/365.aspx)は、コードの範囲内にないように思えます。多分、一時テーブルが良いでしょうか? –
あなたは、C#のコード – ONYX