C# 调用存储过程 语法错误

kennie_190602169 2010-08-17 09:29:28
大家好!
代码如下:


public void GetCompany(string companyId)
{
SqlParameter[] values = new SqlParameter[]
{
new SqlParameter(PARAM_COMPANY_ID, companyId)
};

DataTable dtResult = SQLDBUtil.GetDataSetByProcedure(PRO_GET_WATER_HISTORY, values);

}




IF EXISTS (SELECT name FROM sysobjects WHERE name = 'proTest' AND type = 'P')
DROP PROCEDURE proTest
GO

CREATE PROCEDURE proTest
@company_Id VARCHAR(2)
AS
BEGIN
SELECT * FROM Company WHERE company_Id = @company_Id;
END

exec proTest '01';




错误提示: "'proTest' 附近有语法错误。"
首先,这存储过程是可以执行的.但是用C#调用,就报存储过程名字附近有语法错误.另外,如果C#里不传参数,是没问题的.这是什么问题?请大家指教,谢谢!
...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kennie_190602169 2010-08-17
  • 打赏
  • 举报
回复
检查出来了,晕si...低级错误, 少了一句CommandType.StoredProcedure;
哎...做到头晕了!

谢谢几位!

wuyq11 2010-08-17
  • 打赏
  • 举报
回复
调用其他存储过程是否正确
public static DataTable RunProcedureTable(string storedProcName, IDataParameter[] parameters)
{
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
DataSet dsSet = new DataSet();
SqlDataAdapter sqlDa = new SqlDataAdapter(storedProcName, con);
sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure;
sqlDa.SelectCommand.Parameters.AddRange(parameters);
sqlDa.Fill(dsSet);
return dsSet.Tables[0];
}
}
kennie_190602169 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 peter200694013 的回复:]
是不是由于换行而引起的错误
建议查找一下
[/Quote]

PROCEDURE里哪里换行有问题?
kennie_190602169 2010-08-17
  • 打赏
  • 举报
回复

public static DataTable GetDataSetByProcedure(string procedureName, params SqlParameter[] values)
{
SqlDataAdapter sda = null;
DataSet ds = null;
SqlCommand cmd = null;

try
{

ds = new DataSet();
cmd = new SqlCommand(procedureName, Con);
cmd.CommandTimeout = 120;
cmd.Parameters.AddRange(values);
sda = new SqlDataAdapter(cmd);
sda.SelectCommand.CommandTimeout = 120;
sda.Fill(ds);
return ds.Tables[0];
}
catch (Exception e)
{
//Log.AddErr(e);
return null;
}
finally
{
if (null != ds)
{
ds.Dispose();
}
if (null != sda)
{
sda.Dispose();
}
if (null != cmd)
{
cmd.Dispose();
}
if (Con.State == ConnectionState.Open)
{
Con.Close();
}
}

}
Peter200694013 2010-08-17
  • 打赏
  • 举报
回复
是不是由于换行而引起的错误
建议查找一下
龍月 2010-08-17
  • 打赏
  • 举报
回复
GetDataSetByProcedure
贴出来啊
wuyq11 2010-08-17
  • 打赏
  • 举报
回复
检查SQLDBUtil.GetDataSetByProcedure方法

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧