大家好,我在特定datagridview
列中返回 sql server 标量值函数的值时遇到问题,代码如下:-
1- sql函数:-
CREATE FUNCTION [dbo].[ToLocationID](@ID int)
RETURNS varchar(50)
AS
BEGIN
-- Declare the return variable here
DECLARE @LocationName varchar(50)
-- Add the T-SQL statements to compute the return value here
SELECT @LocationName=dbo.Location.LocationName FROM Location WHERE LocationID=@ID
-- Return the result of the function
RETURN @LocationName
END
2-C#方法执行功能:-
public static string MyMethod(int ID) {
string SqlConnStr = globals.ServerConnStr;
SqlConnection SqlConn = new SqlConnection(SqlConnStr);
try
{
SqlConn.Open();
SqlCommand cmd = new SqlCommand("SELECT dbo.ToLocationID(@ID)", SqlConn);
cmd.Parameters.Add(new SqlParameter("@ID", ID));
return cmd.ExecuteScalar().ToString();
}
finally
{
SqlConn.Close();
}
}
这是gridview代码: -
//GetAllTransfers is a method that executes a stored procedure to return most of the //columns like the column["Date"] below
dataGridViewList.DataSource = Data.GetAllTransfers();
dataGridViewList.Columns["Date"].HeaderText = "Date";
dataGridViewList.Columns.Add("ToLocationID", "To Location");
dataGridViewList.Columns["ToLocationID"].DisplayIndex = 5;
dataGridViewList.Columns["ToLocationID"].Tag = Data.MyMethod(1);
我只想用“MyMethod”方法中的标量函数的结果填充“ToLocationID”列,这段代码有什么问题?