C# 定义了datatable 但是提示上下文不存在.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 定义了datatable 但是提示上下文不存在.相关的知识,希望对你有一定的参考价值。

定义了dtResult 但是调试时候说上下文不存在

就这句代码:
string strSql = "select * from contractinfo where projectid= \'" + ProjectID + "\' ";
最后ProjectID这个参数变量你没有定义。所以说上下文不存在。追问

不是的, 说的是dtResult上线问不存在,

ProjectID 是在外面定义的 public string ProjectID = string.Empty;

追答

外面定义???你是WINFORM还是WEB?
我建议你先定义在里面试试(定义在方法体里里面),如果还有问题,那你要检查下DBSELECT这个方法了,看看需要传的参数是否正确和里面的代码。
顺便问句,contractinfo这个表你数据库存在吗?仔细检查下。

追问

dtResult 绝对和ProjectID没有半点关系 这问题是很奇怪, 把 dtResult定义在 方法外可以了, 很怪的,这里

参考技术A 我觉得这个错误应该是从dbClass.dbSelect(strSql,"contractinfo") 方法中抛出来的,你看是不是在里面调用 dtResult , 但没有定义! 参考技术B 这种情况我没试过,是不是需要将dtResult添加到dbClass中
试一试追问

在另一个类中我这样调用的dbClass 就没问题

DBAccess dbClass = new DBAccess();
DataTable dtResult = new DataTable();
dtResult = dbClass.dbSelect(getDataProjectName(), "contractinfo");

这是另一个类中这样用的,可以正常返回datatable,
但是在这里怎样弄都是提示上下文不存在"dtResult"

c# DataTable中使用排序的时候注意事项

背景:

在项目使用DataTable的时候,使用到了其中ExtendedProperties的属性,但是之后出了问题:在排序之后ExtendedProperties的自定义的键值丢失了,代码如下:

误:

dt.ExtendProperties["test"]="OK";
dv = New DataView(dt)
dv.Sort = "id desc"
dt = dv.ToTable();

最后dt的ExtendedProperties丢失了。

正确的做法如下,不需要重新生成DataView和DataTable

正:

dt.DefaultView.Sort = "id desc"

以上的代码,经过验证可以保存ExtendedProperties不丢失。

横斩:

在以后处理其他数据结构的时候,如果出现了“再生”对象的代码,需要确认是否有其他信息丢失的问题。

 

以上是关于C# 定义了datatable 但是提示上下文不存在.的主要内容,如果未能解决你的问题,请参考以下文章

C#定义了静态的DataTable,但会被覆盖?

C# 如何调整DataTable的大小?有人说调属性,但是MicroSoft Visual 2010 C# 没有DataTable控件。

C#中定义了一个DataTable,怎样求得表中的最大值,并返回对应的行和列的下标啊

vs 在进行调试时 查看DataSet数据 提示未能加载此自定义查看器的

C# WinForm自定义进度条

C# 将 DataTable 绑定到现有 DataGridView 列定义