- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用自定义数据处理扩展来调用存储过程。使用扩展在报表设计器中创建数据集时出现以下错误。我用 C# 编写了代码。
could not update a list of fields for the query. verify that you can connect to the data source and that your query syntax is correct.(Details-Object reference not set to an instance of an object.)
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using Microsoft.ReportingServices.DataProcessing;
using System.Diagnostics;
using System.Text.RegularExpressions;
namespace DataBaseDPE
{
public class DBConnection:Microsoft.ReportingServices.DataProcessing.IDbConnectionExtension
{
private string mconnstring;
private string localname = "Database Connection";
private ConnectionState mState = ConnectionState.Open;
public DBConnection()
{
Debug.WriteLine("DataSetConnection: Default Constructor");
}
public DBConnection(string Dconnection)
{
Debug.WriteLine("DataSetConnection Constructor overloaded with Connection String ");
mconnstring = Dconnection;
}
public Microsoft.ReportingServices.DataProcessing.IDbTransaction BeginTransaction()
{
return (null);
}
public string ConnectionString
{
get
{
return mconnstring;
}
set
{
mconnstring = value;
}
}
public int ConnectionTimeout
{
get
{
return 0;
}
}
public ConnectionState State
{
get
{
return mState;
}
}
public void Open()
{
mState = ConnectionState.Open;
return;
}
public void Close()
{
mState = ConnectionState.Closed;
return;
}
public Microsoft.ReportingServices.DataProcessing.IDbCommand CreateCommand()
{
return new DBCommand(this);
}
public string LocalizedName
{
get
{
return localname;
}
set
{
localname = value;
}
}
public void SetConfiguration(string configuration)
{
try
{
SqlConnection sqlconn = new SqlConnection("Data Source=localhost;Initial Catalog=AdventureWorks2000;Integrated Security=True;");
}
catch (Exception e)
{
throw new Exception(e.Message, null);
}
}
public void Dispose()
{
}
public string Impersonate
{ get; set; }
public bool IntegratedSecurity
{ get; set; }
public string Password
{ get; set; }
public string UserName
{ get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.ReportingServices.DataProcessing;
using System.Data.SqlClient;
namespace DataBaseDPE
{
public class DBCommand : Microsoft.ReportingServices.DataProcessing.IDbCommand
{
DBConnection mconnection = null;
private string mCmdText;
private int mCmdTimeOut = 30;
private CommandType CmdType;
public DBCommand()
{
}
public DBCommand(string CmdText)
{
mCmdText = CmdText;
}
public DBCommand(DBConnection aConnection)
{
mconnection = aConnection;
}
public void Cancel()
{
throw new NotImplementedException();
}
public string CommandText
{
get
{
return mCmdText;
}
set
{
mCmdText = value;
}
}
public int CommandTimeout
{
get
{
return mCmdTimeOut;
}
set
{
mCmdTimeOut = value;
}
}
public CommandType CommandType
{
get
{
return CmdType;
}
set
{
CmdType = value;
}
}
public IDataParameter CreateParameter()
{
return (null);
}
public class MySqlDataReader:Microsoft.ReportingServices.DataProcessing.IDataReader
{
private System.Data.IDataReader sourceDataReader;
private System.Data.DataTable dt;
private System.Data.DataSet ds;
private int fieldCount = 0;
private string fieldName;
private int fieldOrdinal;
private Type fieldType;
private object fieldValue;
private int currentRow = 0;
public MySqlDataReader(System.Data.IDataReader datareader)
{
this.sourceDataReader = datareader;
}
public MySqlDataReader(System.Data.DataTable dt)
{
// TODO: Complete member initialization
this.dt = dt;
}
public MySqlDataReader(System.Data.DataSet ds)
{
// TODO: Complete member initialization
this.ds = ds;
}
public int FieldCount
{
get
{
fieldCount = ds.Tables[0].Columns.Count;
return fieldCount;
}
}
public Type GetFieldType(int i)
{
fieldType =
ds.Tables[0].Columns[i].DataType;
return fieldType;
}
public string GetName(int i)
{
fieldName = ds.Tables[0].Columns[i].ColumnName;
return fieldName;
}
public int GetOrdinal(string name)
{
fieldOrdinal =
ds.Tables[0].Columns[name].Ordinal;
return fieldOrdinal;
}
public object GetValue(int i)
{
fieldValue =
ds.Tables[0].Rows[this.currentRow][i];
return fieldValue;
}
public bool Read()
{
currentRow++;
if (currentRow >= ds.Tables[0].Rows.Count)
{
return (false);
}
else
{
return (true);
}
}
public void Dispose()
{
}
}
public IDataReader ExecuteReader(CommandBehavior behavior)
{
string query = "SampleSP";
SqlConnection readerconn = new SqlConnection("Data Source=localhost;Initial Catalog=AdventureWorks2000;Integrated Security=SSPI");
SqlCommand readercmd = new SqlCommand(query);
readerconn.Open();
readercmd = readerconn.CreateCommand();
readercmd.CommandText = query;
readercmd.CommandType = System.Data.CommandType.StoredProcedure;
readerconn.Close();
SqlDataAdapter adapter = new SqlDataAdapter(query,readerconn);
readerconn.Open();
adapter.SelectCommand = readercmd;
System.Data.DataTable dt = new System.Data.DataTable();
adapter.Fill(dt);
System.Data.DataSet ds = new System.Data.DataSet();
adapter.Fill(ds);
return new MySqlDataReader(ds);
}
public IDataParameterCollection Parameters
{
get { return (null); }
}
public IDbTransaction Transaction
{
get
{
return (null);
}
set
{
throw new NotImplementedException();
}
}
public void Dispose()
{
}
}
}
最佳答案
我得到了解决方案,在上面的代码中我没有实现 IDataParameter 和 IDataParameterCollection 接口(interface)。实现它们后,我的代码可以正常工作,现在我可以获取 SSRS 报告的数据集。
关于c# - SSRS 自定义数据处理扩展错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30053228/
解释 我的应用程序基本上使用带有代表建筑物的多边形叠加层的 map View ,以及注释。为此,它导入了一个名为 Annotation 的自定义类,该类在点击注释时处理弹出详细信息,这意味着它存储建筑
我有一个数据处理问题,我想计算两支球队在不同比赛中的进球数差异。数据如下所示: matchId teamId eventSec 1 2799331 6718 443.55984
如下所示: ? 1
我想知道 cocoa 是否有默认的数据存储方式。如果是,那是什么?我的意思是 Rails 默认使用 sqlite... 此外,我正在寻找有关如何使用它的教程...例如获取数据并将其显示到 ListVi
我正在使用 HTML5 创建在线游戏。我将使用 JSON 字符串通过 Websockets 通信数据,因此典型的字符串将包含被调用的操作以及随之而来的数据: {action: "chat", user
我需要按特定列对一组 csv 行进行分组,并对每个组进行一些处理。 JavaRDD lines = sc.textFile ("somefile
我有一个情况: 基本上有 3 个模块,分别命名为“A”、“B”、“C”。每个模块都涉及多线程。 模块“A”获取高速数据(20ms)并发送。模块“B”的一个线程启动。 模块“B”提取相关数据并执行一些位
我正在处理有关城镇和城镇内区域的 MySQL 数据库中的一些数据。 数据库看起来像这样 ID | NAME 1 | Manchester 2 | Manchester/North 3 | Man
当我注册用户时,我得到一个状态代码 200 和一个 token :“”返回 JSON。如果用户已经存在,那么我会得到状态代码 200 和 html 响应而不是 JSON。我应该如何处理这个问题。提前致
我有一个应用程序,我从网络上下载大量资源,并对每个资源进行一些处理。我不希望这项工作发生在主线程上,但它非常轻量级且优先级较低,因此所有这些工作都可以真正发生在同一个共享工作线程上。这似乎是一件好事,
我目前正在与一家小公司合作,该公司将其所有应用程序数据存储在 AWS Redshift 集群中。我的任务是对该 Redshift 集群中的数据进行一些数据处理和机器学习。 我需要做的第一个任务是根据一
简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理。现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是
1.数组的处理: 1.1 数组的创建和初始化: 1.arrary()函数创建数组,默认情况下0元素是数组的第一个元素, count()和sizeof()函数获得数
我正在尝试将 CKEditor 与 AngularJS 结合使用,用于具有数据绑定(bind)的 WYSIWYG 编辑器,一切似乎都运行良好。极端的可配置性对我们的需求匹配有很大帮助。 我们现在面临表
我正在对负样本和正样本进行文本二元分类任务,我想包括以下所有内容: 处理数据..(例如标记化) 特征选择,例如 Chi2 应用随机投影,因为我有一个大型稀疏矩阵(n_samples:974,n_fea
数据与我在 Pandas 系列: data = ["1. stock1 (1991)", "3. stock13 (1993)", "5. stock19 (1999)", "89. stock
1.字符串的定义与显示 定义:通过””,''来标志 显示:echo()和print(),但print()具有返回值值,1,而echo()没有,但echo比print()要快,
1.正则表达式基础知识 含义:由普通字符和(a-z)和一些特殊字符组成的字符串模式 功能:有效性验证。 替换文本。 从一个字符串提取一个子字符串。&n
我想知道是否可以在我的 Cost Explorer 中发现这个成本背后的资源,按使用类型分组我可以看到它是数据处理字节,但我不知道哪个资源会消耗这个数量数据的。知道如何在 CloudWatch 上发现
我有一个 Json 字符串。我想从该 Json 字符串中获取值。 这是我的 json 字符串{“纬度”:“22.5712854”},{“经度”:“88.4266847”} 我只需要使用 TSQL 查询
我是一名优秀的程序员,十分优秀!