如何用C#中的sql标量函数填充datagridview列?

时间:2014-09-03 13:23:52

标签: c# sql sql-server datagridview executescalar

大家好我在特定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”列,这段代码出了什么问题?

0 个答案:

没有答案