我的存储过程如下:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[pr_psr3] @vessel nvarchar(25)
as
begin
SELECT distinct t_cvm_address_1.company_name, t_cvm_address_2.company_name AS Expr1, t_cvm_address3.company_name AS Expr2, eCargoData.dbo.t_oeh_hbl.hbl_no,
eCargoData.dbo.t_oem_master.master_bl_no, SMLRPT.dbo.f_so(eCargoData.dbo.t_oeh_hbl.hbl_no) AS Expr5, t_cvm_address4.company_name AS Expr4,
eCargoData.dbo.t_oem_master.vessel_name, eCargoData.dbo.t_oem_master.voyage_no, eCargoData.dbo.t_oem_master.ams_vessel_name, eCargoData.dbo.t_oem_master.ams_voyage_no,
eCargoData.dbo.t_oem_master.on_board_date, eCargoData.dbo.t_oem_master.loading_port, eCargoData.dbo.t_oem_master.eta_date, eCargoData.dbo.t_oeh_hbl.hbl_discharge_port,
eCargoData.dbo.t_oeh_hbl.place_of_delivery, eCargoData.dbo.t_oem_master.place_of_delivery AS Expr6,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[container_no] ELSE [oem_container_1].[container_no] END AS Expr3,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[container_type] ELSE [oem_container_1].[container_type] END AS Expr7,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[container_seal_no] ELSE [oem_container_1].[container_seal_no] END AS Expr8,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[piece_count] ELSE [oem_container_1].[piece_count] END AS Expr9,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[weight_kg] ELSE [oem_container_1].[weight_kg] END AS Expr10,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[cbm] ELSE [oem_container_1].[cbm] END AS Expr11,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[freight_cost] ELSE [oem_container_1].[freight_cost] END AS Expr12
FROM eCargoData.dbo.t_oem_master_container AS t_oem_container_2 RIGHT OUTER JOIN
eCargoData.dbo.t_oem_master INNER JOIN
eCargoData.dbo.t_oeh_hbl ON eCargoData.dbo.t_oem_master.oem_master_id = eCargoData.dbo.t_oeh_hbl.oem_master_id ON
t_oem_container_2.oem_master_id = eCargoData.dbo.t_oem_master.oem_master_id LEFT OUTER JOIN
eCargoData.dbo.t_oem_master_container AS oem_container_1 RIGHT OUTER JOIN
eCargoData.dbo.t_oeh_hbl_container ON oem_container_1.oem_master_id = eCargoData.dbo.t_oeh_hbl_container.oem_master_id AND
oem_container_1.container_no = eCargoData.dbo.t_oeh_hbl_container.container_no ON
eCargoData.dbo.t_oeh_hbl.oeh_hbl_id = eCargoData.dbo.t_oeh_hbl_container.oeh_hbl_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address4 ON eCargoData.dbo.t_oem_master.carrier_id = t_cvm_address4.cvm_address_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address3 ON eCargoData.dbo.t_oeh_hbl.shipper_id = t_cvm_address3.cvm_address_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address_1 ON eCargoData.dbo.t_oeh_hbl.consignee_id = t_cvm_address_1.cvm_address_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address_5 ON eCargoData.dbo.t_oem_master.agent_id = t_cvm_address_5.cvm_address_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address_2 ON eCargoData.dbo.t_oeh_hbl.notify_id = t_cvm_address_2.cvm_address_id
where (eCargoData.dbo.t_oem_master.vessel_name like '%'+@vessel+'%');
end
--------------------------------------------------------------------------------------------------
程序代码如下:
private void fillToolStripButton_Click(object sender, EventArgs e)
{
try
{
this.pr_psr3TableAdapter.Fill(this.sMLRPTDataSet.pr_psr3, vesselToolStripTextBox.Text);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
} }
我在SQL下执行我的存储过程查询出来的结果都是正确的,可是在C#下面就不行,我怀疑是数据类型不对,但不知道怎么办,小妹分少,望大侠别嫌弃,帮帮忙
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[pr_psr3] @vessel nvarchar(25)
as
begin
SELECT distinct t_cvm_address_1.company_name, t_cvm_address_2.company_name AS Expr1, t_cvm_address3.company_name AS Expr2, eCargoData.dbo.t_oeh_hbl.hbl_no,
eCargoData.dbo.t_oem_master.master_bl_no, SMLRPT.dbo.f_so(eCargoData.dbo.t_oeh_hbl.hbl_no) AS Expr5, t_cvm_address4.company_name AS Expr4,
eCargoData.dbo.t_oem_master.vessel_name, eCargoData.dbo.t_oem_master.voyage_no, eCargoData.dbo.t_oem_master.ams_vessel_name, eCargoData.dbo.t_oem_master.ams_voyage_no,
eCargoData.dbo.t_oem_master.on_board_date, eCargoData.dbo.t_oem_master.loading_port, eCargoData.dbo.t_oem_master.eta_date, eCargoData.dbo.t_oeh_hbl.hbl_discharge_port,
eCargoData.dbo.t_oeh_hbl.place_of_delivery, eCargoData.dbo.t_oem_master.place_of_delivery AS Expr6,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[container_no] ELSE [oem_container_1].[container_no] END AS Expr3,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[container_type] ELSE [oem_container_1].[container_type] END AS Expr7,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[container_seal_no] ELSE [oem_container_1].[container_seal_no] END AS Expr8,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[piece_count] ELSE [oem_container_1].[piece_count] END AS Expr9,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[weight_kg] ELSE [oem_container_1].[weight_kg] END AS Expr10,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[cbm] ELSE [oem_container_1].[cbm] END AS Expr11,
CASE WHEN [eCargoData].[dbo].[t_oeh_hbl_container].[container_no] IS NULL THEN [t_oem_container_2].[freight_cost] ELSE [oem_container_1].[freight_cost] END AS Expr12
FROM eCargoData.dbo.t_oem_master_container AS t_oem_container_2 RIGHT OUTER JOIN
eCargoData.dbo.t_oem_master INNER JOIN
eCargoData.dbo.t_oeh_hbl ON eCargoData.dbo.t_oem_master.oem_master_id = eCargoData.dbo.t_oeh_hbl.oem_master_id ON
t_oem_container_2.oem_master_id = eCargoData.dbo.t_oem_master.oem_master_id LEFT OUTER JOIN
eCargoData.dbo.t_oem_master_container AS oem_container_1 RIGHT OUTER JOIN
eCargoData.dbo.t_oeh_hbl_container ON oem_container_1.oem_master_id = eCargoData.dbo.t_oeh_hbl_container.oem_master_id AND
oem_container_1.container_no = eCargoData.dbo.t_oeh_hbl_container.container_no ON
eCargoData.dbo.t_oeh_hbl.oeh_hbl_id = eCargoData.dbo.t_oeh_hbl_container.oeh_hbl_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address4 ON eCargoData.dbo.t_oem_master.carrier_id = t_cvm_address4.cvm_address_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address3 ON eCargoData.dbo.t_oeh_hbl.shipper_id = t_cvm_address3.cvm_address_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address_1 ON eCargoData.dbo.t_oeh_hbl.consignee_id = t_cvm_address_1.cvm_address_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address_5 ON eCargoData.dbo.t_oem_master.agent_id = t_cvm_address_5.cvm_address_id LEFT OUTER JOIN
eCargoData.dbo.t_cvm_address AS t_cvm_address_2 ON eCargoData.dbo.t_oeh_hbl.notify_id = t_cvm_address_2.cvm_address_id
where (eCargoData.dbo.t_oem_master.vessel_name like '%'+@vessel+'%');
end
--------------------------------------------------------------------------------------------------
程序代码如下:
private void fillToolStripButton_Click(object sender, EventArgs e)
{
try
{
this.pr_psr3TableAdapter.Fill(this.sMLRPTDataSet.pr_psr3, vesselToolStripTextBox.Text);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
} }
我在SQL下执行我的存储过程查询出来的结果都是正确的,可是在C#下面就不行,我怀疑是数据类型不对,但不知道怎么办,小妹分少,望大侠别嫌弃,帮帮忙
解决方案 »
- 读取一条网址内的内容
- SerialPort接收数据不完整?
- Sockets ftp 下载出错,帮我看下
- 我的asp.net连不上sql!!
- udp----数据分包问题!
- 用hashtable建立一个学生目录
- 怎样在 WebUserControl 中添加一个属性(可以在属性叶面访问的!)?
- 有关“内置引用类型”string和object的疑问
- 请问在Vs.net中开发asp.net的页面时如何插入flash?急,谢谢!
- 请问在listview中,如何给每一个ITEM加入单独的大图标,而图标是由数据库里读出来的jpg或gif格式?
- 一个关于DataGridView的简单问题!(在线等!)
- C#这种方法可以读取xml文件吗?
谢谢你这么快就回答俺了,按你说的改了,可还是不行,查询出来的结果根本不对
我在SQL执行我的存储过程查出来的数据就没问题...急死了
{
new SqlParameter("@vessel ",SqlDbType.VarChar,25),
}; parPage[0].Value = vesselToolStripTextBox.Text.ToString(); OdbcCommand mCommand = new OdbcCommand();
mCommand = BuildQueryCommand(storedProcName, parameters);
mCommand.ExecuteNonQuery();
{
new SqlParameter("@vessel ",SqlDbType.VarChar,25), }; parPage[0].Value = vesselToolStripTextBox.Text.ToString(); OdbcCommand mCommand = new OdbcCommand();
mCommand = BuildQueryCommand(sMLRPTDataSet.pr_psr3, parameters);
OdbcDataAdapter mdataAdapter = new OdbcDataAdapter(mCommand); mdataAdapter.Fill(returnDataSet);
mCommand.ExecuteNonQuery();
{
try
{
this.pr_psr3TableAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
this.pr_psr3TableAdapter.SelectCommand.CommandText = "[dbo].[pr_psr3]";
this.pr_psr3TableAdapter.SelectCommand.Parameters.AddWithValue("@vessel", vessel的值);
this.pr_psr3TableAdapter.Fill(this.sMLRPTDataSet.pr_psr3);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
} }
小妹没明白您的意思...怎么用啊?
("@vessel", vessel的值)???
我是通过vesselToolStripTextBox.Text得到值的啊?
我在VS2005的数据源预览数据的地方直接预览我的这个存储过程,得到的结果都是错的,但是我在SQL下执行就没问题..??
2、用我给你的fillToolStripButton_Click函数整个替换你原来的fillToolStripButton_Click函数;
3、编译,运行。
4、真累!
按你说的做了,报错说
错误 4 “Fill”方法没有采用“1”个参数的重载 E:\BegVCSharp\SMLReport\SMLReportSystem(0708)a\SMLReportSystem\ucm_psr.cs 27 17 SMLReportSystem错误 1 “SMLReportSystem.SMLRPTDataSetTableAdapters.pr_psr3TableAdapter”并不包含“SelectCommand”的定义 E:\BegVCSharp\SMLReport\SMLReportSystem(0708)a\SMLReportSystem\ucm_psr.cs 24 42 SMLReportSystem
comm.CommandType= CommandType.StoredProcedure;
你是不是漏了第二行了
C#的string 本来就是unicode
分也少,就分给大家吧,谢谢各位仁兄了噢!