0

こんにちは、特定の列で SQL サーバーのスカラー値関数の値を返すことに問題がありdatagridviewます。コードは次のとおりです。

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();
            }
        }

ここにグリッドビューコードがあります:-

//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」に入力したいのですが、このコードの何が問題になっていますか?

4

0 に答える 0