我的代码如下
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
string v_bill_yearmonth = Request.QueryString["bill_yearmonth"];
string v_telecomm_account = Request.QueryString["telecomm_account"];
string connectionString = ConfigurationManager.ConnectionStrings["vehicleConnectionString"].ConnectionString;
string v_bank = "";
string queryString = "SELECT bank FROM telecomm_account where area='" + Session["area_code"].ToString() + "' and account='" + v_telecomm_account + "'";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open(); SqlDataReader reader = command.ExecuteReader(); // Call Read before accessing data.
while (reader.Read())
{ v_bank = reader[0].ToString();
} // Call Close when done reading.
reader.Close();
} string v_before_bill_yearmonth = DateTime.Parse(v_bill_yearmonth + "-01").AddMonths(-1).ToString("yyyy-MM");
string v_before_month_borrow_sum = "", v_before_month_lend_sum = "", v_before_year_borrow_sum = "", v_before_year_lend_sum = "", v_this_month_borrow_sum = "", v_this_month_lend_sum = "", v_this_year_borrow_sum = "", v_this_year_lend_sum = "";
queryString = "select borrow_month_sum,lend_month_sum,borrow_year_sum,lend_year_sum from bill_telecomm_sum where area='" + Session["area_code"].ToString() + "' and month='" + v_before_bill_yearmonth + "'";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open(); SqlDataReader reader = command.ExecuteReader(); // Call Read before accessing data.
while (reader.Read())
{ v_before_month_borrow_sum = reader[0].ToString();
v_before_month_lend_sum = reader[1].ToString();
v_before_year_borrow_sum = reader[2].ToString();
v_before_year_lend_sum = reader[3].ToString();
} // Call Close when done reading.
reader.Close();
}
//TextObject tb = (TextObject)ReportDoc.ReportDefinition.ReportObjects["TextBillYearmonth"];
//tb.Text = v_bill_yearmonth;
queryString =
"SELECT exchange_date,exchange_site,borrow_money,lend_money,bill_yearmonth,exchange_type FROM bill_telecomm where area='" + Session["area_code"].ToString() +
"' and telecomm_account='" + v_telecomm_account + "' and bill_yearmonth='" + v_bill_yearmonth + "' order by exchange_site,exchange_date"; DataSet ds = new DataSet(); try
{
// Connect to the database and run the query.
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection); // Fill the DataSet.
adapter.Fill(ds, "bill_telecomm");
//CrystalReportSource1.ReportDocument.SetDataSource(ds);
//CrystalReportSource1.DataBind();
ParameterFields paraFields = new ParameterFields();
ParameterField[] paraField = new ParameterField[8];
ParameterDiscreteValue[] discreteValue = new ParameterDiscreteValue[8];
ParameterRangeValue rangeValue = new ParameterRangeValue();
paraField[0] = new ParameterField();
paraField[0].ParameterFieldName = "bank_name";
discreteValue[0] = new ParameterDiscreteValue();
discreteValue[0].Value = v_bank;// "工商银行";// (string)Session["Name"];
paraField[0].CurrentValues.Add(discreteValue[0]);
paraField[1] = new ParameterField();
paraField[1].ParameterFieldName = "telecomm_account";
discreteValue[1] = new ParameterDiscreteValue();
discreteValue[1].Value = v_telecomm_account;
paraField[1].CurrentValues.Add(discreteValue[1]); paraField[2] = new ParameterField();
paraField[2].ParameterFieldName = "before_month_borrow_sum";
discreteValue[2] = new ParameterDiscreteValue();
discreteValue[2].Value = v_before_month_borrow_sum;
paraField[2].CurrentValues.Add(discreteValue[2]); paraField[3] = new ParameterField();
paraField[3].ParameterFieldName = "before_month_lend_sum";
discreteValue[3] = new ParameterDiscreteValue();
discreteValue[3].Value = v_before_month_lend_sum;
paraField[3].CurrentValues.Add(discreteValue[3]); paraField[4] = new ParameterField();
paraField[4].ParameterFieldName = "before_year_borrow_sum";
discreteValue[4] = new ParameterDiscreteValue();
discreteValue[4].Value = v_before_year_borrow_sum;
paraField[4].CurrentValues.Add(discreteValue[4]); paraField[5] = new ParameterField();
paraField[5].ParameterFieldName = "before_year_lend_sum";
discreteValue[5] = new ParameterDiscreteValue();
discreteValue[5].Value = v_before_year_borrow_sum;
paraField[5].CurrentValues.Add(discreteValue[5]);
foreach (ParameterField pf in paraField)
{
paraFields.Add(pf);
} ReportDocument rptdoc = new ReportDocument();
rptdoc.Load(Server.MapPath("./CrystalReport1.rpt"));
rptdoc.SetDataSource(ds); CrystalReportViewer1.ReportSource = rptdoc;
CrystalReportViewer1.ParameterFieldInfo = paraFields;
CrystalReportViewer1.DataBind();
// CrystalReportViewer1.RefreshReport();
}
catch (Exception)
{ // The connection failed. Display an error message.
status.Text = "Unable to connect to the database."; } }
}
本代码第一页显示正常,但是翻页、打印、导出时报错如下
登录失败。详细资料: crdb_adoplus : 未将对象引用设置到对象的实例。文件 C:\DOCUME~1\920172\LOCALS~1\Temp\CrystalReport1 {8737FC64-A9AA-4256-8FDF-B6BF90443E14}.rpt 内出错:无法连接:错误的登录参数。 2 / 2+ 主报表
因帖子字数限制,我去出了一部分重复的代码
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
string v_bill_yearmonth = Request.QueryString["bill_yearmonth"];
string v_telecomm_account = Request.QueryString["telecomm_account"];
string connectionString = ConfigurationManager.ConnectionStrings["vehicleConnectionString"].ConnectionString;
string v_bank = "";
string queryString = "SELECT bank FROM telecomm_account where area='" + Session["area_code"].ToString() + "' and account='" + v_telecomm_account + "'";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open(); SqlDataReader reader = command.ExecuteReader(); // Call Read before accessing data.
while (reader.Read())
{ v_bank = reader[0].ToString();
} // Call Close when done reading.
reader.Close();
} string v_before_bill_yearmonth = DateTime.Parse(v_bill_yearmonth + "-01").AddMonths(-1).ToString("yyyy-MM");
string v_before_month_borrow_sum = "", v_before_month_lend_sum = "", v_before_year_borrow_sum = "", v_before_year_lend_sum = "", v_this_month_borrow_sum = "", v_this_month_lend_sum = "", v_this_year_borrow_sum = "", v_this_year_lend_sum = "";
queryString = "select borrow_month_sum,lend_month_sum,borrow_year_sum,lend_year_sum from bill_telecomm_sum where area='" + Session["area_code"].ToString() + "' and month='" + v_before_bill_yearmonth + "'";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open(); SqlDataReader reader = command.ExecuteReader(); // Call Read before accessing data.
while (reader.Read())
{ v_before_month_borrow_sum = reader[0].ToString();
v_before_month_lend_sum = reader[1].ToString();
v_before_year_borrow_sum = reader[2].ToString();
v_before_year_lend_sum = reader[3].ToString();
} // Call Close when done reading.
reader.Close();
}
//TextObject tb = (TextObject)ReportDoc.ReportDefinition.ReportObjects["TextBillYearmonth"];
//tb.Text = v_bill_yearmonth;
queryString =
"SELECT exchange_date,exchange_site,borrow_money,lend_money,bill_yearmonth,exchange_type FROM bill_telecomm where area='" + Session["area_code"].ToString() +
"' and telecomm_account='" + v_telecomm_account + "' and bill_yearmonth='" + v_bill_yearmonth + "' order by exchange_site,exchange_date"; DataSet ds = new DataSet(); try
{
// Connect to the database and run the query.
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection); // Fill the DataSet.
adapter.Fill(ds, "bill_telecomm");
//CrystalReportSource1.ReportDocument.SetDataSource(ds);
//CrystalReportSource1.DataBind();
ParameterFields paraFields = new ParameterFields();
ParameterField[] paraField = new ParameterField[8];
ParameterDiscreteValue[] discreteValue = new ParameterDiscreteValue[8];
ParameterRangeValue rangeValue = new ParameterRangeValue();
paraField[0] = new ParameterField();
paraField[0].ParameterFieldName = "bank_name";
discreteValue[0] = new ParameterDiscreteValue();
discreteValue[0].Value = v_bank;// "工商银行";// (string)Session["Name"];
paraField[0].CurrentValues.Add(discreteValue[0]);
paraField[1] = new ParameterField();
paraField[1].ParameterFieldName = "telecomm_account";
discreteValue[1] = new ParameterDiscreteValue();
discreteValue[1].Value = v_telecomm_account;
paraField[1].CurrentValues.Add(discreteValue[1]); paraField[2] = new ParameterField();
paraField[2].ParameterFieldName = "before_month_borrow_sum";
discreteValue[2] = new ParameterDiscreteValue();
discreteValue[2].Value = v_before_month_borrow_sum;
paraField[2].CurrentValues.Add(discreteValue[2]); paraField[3] = new ParameterField();
paraField[3].ParameterFieldName = "before_month_lend_sum";
discreteValue[3] = new ParameterDiscreteValue();
discreteValue[3].Value = v_before_month_lend_sum;
paraField[3].CurrentValues.Add(discreteValue[3]); paraField[4] = new ParameterField();
paraField[4].ParameterFieldName = "before_year_borrow_sum";
discreteValue[4] = new ParameterDiscreteValue();
discreteValue[4].Value = v_before_year_borrow_sum;
paraField[4].CurrentValues.Add(discreteValue[4]); paraField[5] = new ParameterField();
paraField[5].ParameterFieldName = "before_year_lend_sum";
discreteValue[5] = new ParameterDiscreteValue();
discreteValue[5].Value = v_before_year_borrow_sum;
paraField[5].CurrentValues.Add(discreteValue[5]);
foreach (ParameterField pf in paraField)
{
paraFields.Add(pf);
} ReportDocument rptdoc = new ReportDocument();
rptdoc.Load(Server.MapPath("./CrystalReport1.rpt"));
rptdoc.SetDataSource(ds); CrystalReportViewer1.ReportSource = rptdoc;
CrystalReportViewer1.ParameterFieldInfo = paraFields;
CrystalReportViewer1.DataBind();
// CrystalReportViewer1.RefreshReport();
}
catch (Exception)
{ // The connection failed. Display an error message.
status.Text = "Unable to connect to the database."; } }
}
本代码第一页显示正常,但是翻页、打印、导出时报错如下
登录失败。详细资料: crdb_adoplus : 未将对象引用设置到对象的实例。文件 C:\DOCUME~1\920172\LOCALS~1\Temp\CrystalReport1 {8737FC64-A9AA-4256-8FDF-B6BF90443E14}.rpt 内出错:无法连接:错误的登录参数。 2 / 2+ 主报表
因帖子字数限制,我去出了一部分重复的代码
解决方案 »
- asp.net中 怎么读取数据库的表后,手动把数据添加到表格中?
- C# 中自定义DataGridView 控件以实现Cell中增加多行图片、文字
- 关于窗体焦点的问题?
- 请教咨询系统问题
- 【求助】 控制DataGridView行上下移动的问题?
- 关于删除数据库中行的问题
- 高分相送
- 急!调用API出现的问题
- 关于市面上D版vs.net(3张碟)的安装问题。
- 如图的程序框体是用什么控件实现的?
- c#怎么调用不在启动目录的dll
- List<int> a = new List<int>(),将a赋值后,执行List<int> b = new List<int>(),b = a。当我删除b中的元素时,a中的元素也自动被删除,如何解
private void Page_Init(object sender, EventArgs e)
{
}