十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
执行存储过程调用的是ADO.net
成都创新互联公司始终坚持【策划先行,效果至上】的经营理念,通过多达十载累计超上千家客户的网站建设总结了一套系统有效的全网整合营销推广解决方案,现已广泛运用于各行各业的客户,其中包括:成都OPP胶袋等企业,备受客户表扬。
返回的结果集是一个DataSet对象。 如果不是,请检查下你的数据连接库,改下代码。
如果存储过程返回的是两个结果集,那么返回的DataSet就有两个DataTable对象。
调用的时候 只需要
DataSet ds=dbHelper.RunProcedure("Web_pGetDataPager");//假设的返回dataset对象的执行存储过程的方法。
ds.Tables[0] 就是第一个结果集
ds.Tables[1] 就是第二个结果集
//弱绑定第二个结果集 就是下面这样
Datagridview.DataSource=ds.Table[1];
Datagridview.DataBind();
对 Range 对象做 Copy 方法,要注意 Range 要连续的、成矩形选择的。
例如像:A1:C5 可以复制,
例如像:A1:C5, A10:C15 就不能复制。
还要注意一点:对 Range 对象进行操作的话,所在工作表先要激活。
someRange.Worksheet.Activate
如果还有问题的话,可以把对 Excel 操作的代码提取到 Excel VBA 环境下调试好了再移植回去。
在 DMAX里面 做好一个物体(父物体)以后 可以选择Edit菜单中的Clone 下面有三中选项 Copy(生成一个同模样的子物体 两者的操作互不影响) Instance(父子互动 父物体的操作同样影响子物体 子物体也一样) 还有一个Reference(暂不考虑)
在VB NET 同样会碰到这样的问题 创建一个复杂对象(可能有很多种不同的数据类型)的实例 进行了一系列操作之后 想让一个中间变量或几个(另外的实例)保存它的状态 我们一般采取逐个变量赋值 有时候会写很长的代码 )这实际上就是上述的Copy问题 而对于Instance 很简单 新建一个实例 指向一下就可以了
Dim objA As New CResume Cresume是一个自定义的记录简历信息的类
然后进行初始化 比如
objA Name= AAA
objA Address= Shanghai China
……
Dim objB As New CResume 新建一个实例
objB=objA
这样的话 objB跟objA有相同状态 值得注意的是objB改变一个Name 比如
objB Name= BBB
而实际上 objA的Name也变为 BBB 理由很简单 它们指向同一块内存空间
下面我们重点讨论对象的Clone问题 即Copy以后的各个对象互不影响 关键是如何采用简单的方法解决我们的问题 MemoryStream和BinFormatter配合一下可以很简单的把对象克隆
MemoryStream 我以前提到过 是支持存储区为内存的流
BinFormatter 主要以二进制形式序列化和反序列化对象
主要思路
先用BinFormatter的Serialize方法 把对象存储在MemoryStream流中 (操作跟其他Stream一样) 然后Deserialize反序列化 得到一个流式的数据 转化为原来对象的类型就可以了 是不是很简单?呵呵 看一下代码再说
CResume类的代码
Imports System IO
Imports System Runtime Serialization Formatters
Serializable() Public Class CResume
注意类前面加上Serializable()属性 否则不可以序列化
Dim m_Name As String 姓名
Dim m_Address As String 地址
Public Property Address() As String
Get
Return m_Address
End Get
Set(ByVal NewAddress As String)
m_Address = NewAddress
End Set
End Property
lishixinzhi/Article/program/net/201311/15510
这段代码的问题是:
首先for each循环在files里查找文件对象,但是f变量声明为string了,无法让它获取对象;
然后file.copy的变量file没有任何声明,也没有初始化赋值等;
最后,整个for each循环里查找集合files的文件,由于初始化的循环计数器仍然按照最初设定的文件数目向后递增(文件地址),但是实际文件删除一部分,后续的文件位置就不能跟循环计数指针匹配了,所以默认为查找不到文件,将会报错。一般的做法时把复制和删除分别放在2次循环里,第一次只复制文件,第二次才去删除。