我一直试图找到这个问题的答案好几天,我发现很难相信这不可能做到.
我想要在DataSet/DataTable构建页面时SqlDataSource.Select由ASP.NET运行时自动调用方法时构建.
我知道我可以在代码后面运行它,但这使得第二次访问数据库,我真的想避免这种情况.我遇到的每个例子都告诉你在后面的代码中执行Select方法.
有没有办法访问已经检索的数据?
我想从Object变量获取指向的类.
例如,如果我有一个StringBuilder对象的实例,我随后将Object变量设置为,我可以知道Object变量指向StringBuilder对象吗?
例:
StringBuilder sbText = New StringBuilder();
Object oMyObject = sbText;
// How can I determine that oMyObject points to an instance of StringBuilder object using only oMyObject
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用typeof(oMyObject)或者oMyObject.GetType()在我能想到的每一种组合中,并且仍然不断提出Object.似乎应该有一个相当直接的方式来做到这一点,可能有,但我没有找到它.
我必须不同意将此标记为他们提供链接的重复问题的用户.我的问题的标题可能不是那么清楚(我现在已经改变了一点)并且两者的答案可能涉及相同的方法但是询问另一个问题的用户正在寻找实例化的方法一个对象与另一个对象的类型相同.当我所拥有的只是Object类型的变量时,我只是在寻找获取类名称的方法.我永远不会想到Reed通过查看这个问题而提供的答案,我不记得它曾在搜索过这个网站或更广泛的Google搜索.
我对FoxPro非常陌生,所以请原谅最有可能是一个非常愚蠢的问题.我试图将我的大脑包裹在由非程序员编写的几个FoxPro 9程序中,并且在我的生活中从未查看过FoxPro代码,我发现了解它的一些特性是相当繁琐的.
我有一个非常简单的SQL语句,它从Project文件返回信息(用作表).我有三个简单的函数来处理给我一些关于项目中包含的对象(文件)的有用信息.
这是运行的整个主程序.它只是一个使用三个简单函数的SQL语句:
SELECT ShortName(Name) AS SName, LongName(Name) AS LName, Type, GetType(Type) AS TypeName ;
FROM <my project file here> ;
ORDER BY Type, SName
Run Code Online (Sandbox Code Playgroud)
SQL语句运行正常,我的三个函数被调用,并且除了GetType函数之外,所有三个函数都返回我期望的数据.ShortName函数只返回文件名,LongName函数返回整个路径和文件名,GetType函数应返回一个更易读的字符串,告诉我文件类型是什么.如"表","程序"等...
这是问题:
正在运行GetType函数并且正在设置返回值,但返回的值将被截断为6个字符.

我已经验证函数的返回值是函数退出之前我期望的完整文本字符串.然而; 当数据在查看器中显示时,值将被截断.
为什么这些数据会被截断?另外两个函数的工作方式几乎相同(至少从我完全"不知情的"观点来看)并且它们没有被截断.
以下是GetType函数的代码
PARAMETERS pType
retVal = ""
DO CASE
CASE LEFT(ALLTRIM(pType),1) = 'B'
retVal = "Lable"
CASE LEFT(ALLTRIM(pType),1) = 'D'
retVal = "Table"
CASE LEFT(ALLTRIM(pType),1) = 'd'
retVal = "XBase Table"
CASE LEFT(ALLTRIM(pType),1) = 'F'
retVal = "Format"
CASE LEFT(ALLTRIM(pType),1) = 'H'
retVal = "Header"
CASE LEFT(ALLTRIM(pType),1) = 'I' …Run Code Online (Sandbox Code Playgroud)