Skip to main content

sp_tables的@table_type参数

打算写个工具,直接从数据库按字段生成类,使用到了sp_tables,遇到了很奇怪的问题。

查MSDN可以知道:sp_tables的参数之一:@table_type varchar(100) 可选项有:TABLESYSTEMTABLEVIEW

我写了如下代码:Databasedb = DatabaseFactory.CreateDatabase();
DbCommand com = new SqlCommand();
com.CommandText = "sp_tables";
com.CommandType = CommandType.StoredProcedure;
com.Parameters.AddWithValue("@table_type", "TABLE");
IDataReader reader = db.ExecuteReader(com);
却拿不到任何东西。不加@talbe_type的话又返回了大量的系统VIEW。

查看sp_tables的源码,在关于@talbe_type的部分发现如下的东西:if (charindex('''TABLE''',@table_type) <> 0)倒回去仔细看MSDN,参数的说明部分:[ , [ @table_type = ] "'type'" ]比一般的多了2个",而且下面也有说明

Single quotation marks must enclose each table type, and double quotation marks must enclose the whole parameter. Table types must be uppercase. If SET QUOTED_IDENTIFIER is ON, each single quotation mark must be doubled and the whole parameter must be enclosed in single quotation marks.
太大意了。

修改代码:com.Parameters.AddWithValue("@table_type", "'TABLE'");

环境:C# 2.0,MS企业库,SQL Server 2005.

Comments

Popular posts from this blog

Google Notebook整合了Google 书签

FF上一直装有Google笔记本的插件,一直没有到一面上去看,今天无意点到。发现多了个叫“Unfiled”的记事本,记得自己并未建过这么个东西,进去一看才发现,其实就是我的Google书签: 并且右下角也多了“Labels”,且与我Google书签中的相同。 其实人家的右上角的“ New features! ”里说得很清楚: Integration with Google Bookmarks Notebook is now integrated with Google Bookmarks. Your bookmarks will show up as a special Unfiled notebook, making Google Notebook a single place to collect and organize interesting web pages. To publish and collaborate, just drag and drop bookmarks into notebooks.

调用Response.Redirect时出现ThreadAbortException

调用Response.Redirect("test.aspx")时出现ThreadAbortException异常,是因为在内部调用Response.End(),而Response.End() 方法终止页的执行,并将此执行切换到应用程序的事件管线中的Application_EndRequest 事件。不执行 Response.End 后面的代码。可以使用 Response.Redirect ("test.aspx", false); 来代替。 更多情况请参考 PRB:在使用 Response.End、Response.Redirect或Server.Transfer时出现ThreadAbortException 适用于.net framework 1.0 1.1

PSP 三国无双 大蛇传 人物图片

PSP三国无双 大蛇传 人物图片(Google Picasa相册) 现在还不全,太多了。。。(2008-03-23) 搞完了,体力活啊。(2008-04-20) 暂时放弃吧,那个空间到期很久了,忘了更新这里了。什么时候找到地方放再跟新。(2009-04-29) 上传到Google Picasa(2009-09-25)