【发布时间】:2016-12-05 09:44:30
【问题描述】:
我在将参数传递给存储过程时遇到问题。没有抛出错误,但无法获得所需的输出。
.cs 是:
private void btnSubmit_Click(object sender, EventArgs e)
{
try
{
if (cbRegions.SelectedIndex > 0)
{
con = new SqlConnection(connectionString);
cmd = new SqlCommand("dbo.SectionIncharge", con);
cmd.Parameters.Add("@RegionName", SqlDbType.VarChar, 50).Value = cbRegions.SelectedItem.ToString();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
con.Open();
DataTable table = new DataTable();
table.Load(cmd.ExecuteReader());
dgvResults.DataSource = table;
con.Close();
}
}
catch
{
}
}
.sql 是:
ALTER PROCEDURE [dbo].[SectionIncharge] @RegionName varchar(50) --name
AS
select UserName
from SystemUser
where Description LIKE 'RD OFFICE ' + @RegionName AND
Enable = 'Y'
GO
我已经仔细检查了存储过程在 SQL Server Management Studio 中是否正常工作,但是当我尝试从 WinForm 调用它时,没有输出。有人可以帮忙吗。谢谢
【问题讨论】:
-
如果在 SSMS 中调用存储过程没问题,那么问题出在 C# 代码上,而不是 db 代码上。
-
有人已经向你指出了 ExecuteNonQuery...另外,如果你使用 LIKE,也许你想在 proc 中将一个 '%' 连接到你的参数值
标签: c# .net sql-server stored-procedures