SOS,高分请教一个问题,DataTable dt=new DataTable()语句也出错

sdpjeff 2009-12-20 11:44:12
我在程序中访问数据库的时候写了如下的代码:
System.Data.DataTable dt = new System.Data.DataTable();
string sql = @" SELECT Top 1"
+ " OA_FlowsTrace.* "
+ " ,(Select Top 1 NodeName From OA_Nodes Where OA_Nodes.Guid in(Select Top 1 OA_FlowsNode.NodeGuid From OA_FlowsNode Where OA_FlowsNode.Guid = OA_FlowsTrace.FlowsNodeGuid )) As NodeName "
+ " ,(Select Top 1 UserID From [SysUser] Where SysUser.Guid = OA_FlowsTrace.UserGuid) As UserID "
+ " ,(Select Top 1 Guid From [OA_Flows] Where OA_Flows.Guid = (Select Top 1 OA_FlowsNode.FlowGuid From OA_FlowsNode Where OA_FlowsNode.Guid = OA_FlowsTrace.FlowsNodeGuid)) As FlowsGuid "
+ " from OA_FlowsTrace Where WorkGuid='" + strWorkGuid + "'";

this.InitDataSetTableBySQL(ref dtOA_FlowsTrace, sql);
using (SqlConnection conn = new SqlConnection("Server=192.168.15.89;uid=sa;pwd=123;DataBase=OA;"))
{
SqlCommand command = conn.CreateCommand();
command.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(dt);
}
return dt;

当我设置断点调试的时候,运行到DataTable dt=new DataTable(),就报错误了,错误提示框如下:

有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。

************** 异常文本 **************
System.Exception: 由于线程停在某个无法进行垃圾回收的点(可能是因为已对代码进行了优化),因此无法计算表达式的值。
在 Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.MaybeDeserializeAndThrowException(Byte[] data)
在 Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.ManagedShim.DelegatedHost.CreateViewer(IntPtr hwnd, HostServicesHelper hsh, SafeProxyWrapper proxy)


************** 已加载的程序集 **************
mscorlib
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.3603 (GDR.050727-3600)
基本代码: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Microsoft.VisualStudio.CommonIDE
程序集版本: 8.0.0.0
Win32 版本: 8.0.50727.762
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualStudio.CommonIDE/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.CommonIDE.dll
----------------------------------------
Microsoft.VisualStudio.DebuggerVisualizers
程序集版本: 8.0.0.0
Win32 版本: 8.0.50727.42
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualStudio.DebuggerVisualizers/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.DebuggerVisualizers.dll
----------------------------------------
System.Windows.Forms
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.3053 (netfxsp.050727-3000)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.3053 (netfxsp.050727-3000)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.3053 (netfxsp.050727-3000)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Accessibility
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.3053 (netfxsp.050727-3000)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Windows.Forms.resources
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** JIT 调试 **************
要启用实时(JIT)调试,
该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
jitDebugging 值。
编译应用程序时还必须启用
调试。

例如:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

启用 JIT 调试后,任何无法处理的异常
都将被发送到在此计算机上注册的 JIT 调试器,
而不是由此对话框处理。



请各位帮忙,我烦恼啊!!!
...全文
286 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdpjeff 2009-12-20
  • 打赏
  • 举报
回复
楼上的还是不行的 ,晕,有没有办法啊?
1q23111111qqqq 2009-12-20
  • 打赏
  • 举报
回复
楼上正解
gdjlc 2009-12-20
  • 打赏
  • 举报
回复
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(dt);
}
return dt;

---------------------
改为:

SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet ds = new DataSet();
adapter.Fill(ds);
dt = ds.Tables[0];
}
return dt;
namhyuk 2009-12-20
  • 打赏
  • 举报
回复
using (SqlConnection conn = new SqlConnection("Server=192.168.15.89;uid=sa;pwd=123;DataBase=OA;"))
{
SqlCommand command = conn.CreateCommand();
command.CommandText = sql;
dt.Load(cmd.ExecuteReader());
}
abcdef1111111 2009-12-20
  • 打赏
  • 举报
回复
看不明白,帮顶
sdpjeff 2009-12-20
  • 打赏
  • 举报
回复
我把这段代码放到新的解决方案里的时候是运行正常的,放到我老的里面就出现那个错误了,不知道怎么办
meadking 2009-12-20
  • 打赏
  • 举报
回复
是否使用了using代码块???
oldphoto9898 2009-12-20
  • 打赏
  • 举报
回复
你把MSDN里面的例子打开看看。
wuyq11 2009-12-20
  • 打赏
  • 举报
回复
可能不是这段代码问题。检查其他代码
wangminqi 2009-12-20
  • 打赏
  • 举报
回复

private void button1_Click(object sender, EventArgs e)
{
System.Data.DataTable dt = NewMethod();
dataGridView1.DataSource = dt;

}

private static System.Data.DataTable NewMethod()
{
System.Data.DataTable dt = new System.Data.DataTable();
string sql = @" select 1 as a,2 as b";

//this.InitDataSetTableBySQL(ref dtOA_FlowsTrace, sql);
using (SqlConnection conn = new SqlConnection("Server=192.168.0.10;uid=sa;"))
{
SqlCommand command = conn.CreateCommand();
command.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(dt);
}
return dt;
}

在vs2008中上面的代码都运行通过,所以好像不是这段代码问题
也许是其他原因吧,例如用 vs2008试试!



http://www.mybuffet.cn

62,243

社区成员

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

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

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

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