datatable的困惑。。。。

xz5211314_0 2010-10-15 01:08:24
我的datatable总是没有数据。。。
public IList<BaseProject> GetParentBaseProjects( OracleConnection conn,int ppid )
{
string sqlAll = "SELECT ppid,pid,pname,pdesc FROM BASEPROJECT where PPID<>0 ";
return GetBaseProjectsBySql( sqlAll, conn, new OracleParameter( ":PpID", ppid ) );

}

public IList<BaseProject> GetBaseProjectsBySql( string sql, OracleConnection conn , params OracleParameter[ ] values )
{
List<BaseProject> list = new List<BaseProject>( );

try
{
DataTable table = MyCommon.GetDataSet( sql, conn, values );//这里table就是null直了。。。。

foreach( DataRow row in table.Rows )
{
BaseProject baseProject = new BaseProject( );

baseProject.PId = Convert.ToInt32( row[ "PID" ] );
baseProject.PName = ( string )row[ "PNAME" ];
baseProject.PDesc = ( string )row[ "PDESC" ];
baseProject.PPid = Convert.ToInt32( row[ "PPID" ] );

list.Add( baseProject );
}

return list;
}
catch( Exception e )
{
Console.WriteLine( e.Message );
throw e;
}

}

public static DataTable GetDataSet( string sql, OracleConnection conn, params OracleParameter[ ] cmdParms )
{
DataSet ds = new DataSet( );
OracleCommand cmd = new OracleCommand( sql, conn );
cmd.CommandType = CommandType.Text;
if( cmdParms != null )
{
foreach( OracleParameter parm in cmdParms )
cmd.Parameters.Add( parm );
}

OracleDataAdapter da = new OracleDataAdapter( cmd );

da.Fill( ds );
return ds.Tables[ 0 ];
}

而且的我的SQL语句在oracle数据库里面可以查到数据啊 。。为什么table就是null呢 请高手指教。。
...全文
147 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
酷儿 2010-10-15
  • 打赏
  • 举报
回复
SELECT ppid,pid,pname,pdesc FROM BASEPROJECT where PPID<>0 这个语句先执行下 看是否为空 用断点调试 一下就知道问题了 下面使用即时窗口 可以把值给打印出来
q107770540 2010-10-15
  • 打赏
  • 举报
回复
using (OracleDataAdapter ad = new OracleDataAdapter("SELECT ppid,pid,pname,pdesc FROM BASEPROJECT where PPID<>0", con))
{
System.Data.DataSet ds = new DataSet();
ad.Fill(ds);
return ds.Tables[0];


}
Ny-6000 2010-10-15
  • 打赏
  • 举报
回复
数据连接打开了吗?
q107770540 2010-10-15
  • 打赏
  • 举报
回复

string connString = GetConnectionString();
DataSet ds = new DataSet();
OracleConnection conn = new OracleConnection(connString);
OracleCommand cmd = conn.CreateCommand();

cmd.CommandText = "CURSPKG.OPEN_TWO_CURSORS";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("EMPCURSOR", OracleType.Cursor).Direction =
ParameterDirection.Output;
cmd.Parameters.Add("DEPTCURSOR", OracleType.Cursor).Direction =
ParameterDirection.Output;

OracleDataAdapter da = new OracleDataAdapter(cmd);
da.TableMappings.Add("Table", "Emp");
da.TableMappings.Add("Table1", "Dept");
da.Fill(ds);

ds.Relations.Add("EmpDept", ds.Tables["Dept"].Columns["Deptno"],
ds.Tables["Emp"].Columns["Deptno"], false);

http://msdn.microsoft.com/zh-cn/library/system.data.oracleclient.oracledataadapter(VS.80).aspx
xz5211314_0 2010-10-15
  • 打赏
  • 举报
回复
SELECT ppid,pid,pname,pdesc FROM BASEPROJECT where PPID<>0 数据库中的确可以查到数据啊。。。郁闷了我 高手!!
wangdj2 2010-10-15
  • 打赏
  • 举报
回复
MyCommon.GetDataSet( sql, conn, values )
里面应该有Bug,F11调试进去,看看相关的sql语句是否有问题,或者
报告其它的问题,用这种方法应该都能够找到问题
暖枫无敌 2010-10-15
  • 打赏
  • 举报
回复
SELECT ppid,pid,pname,pdesc FROM BASEPROJECT where PPID<>0到数据库执行下看可有数据?
这个最好打个断点跟踪下,很容易发现问题的。
你就在DataTable table = MyCommon.GetDataSet( sql, conn, values );//这里table就是null直了。。。。

F9下,然后F5,再F11单步跟踪下

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧