簡體   English   中英

從SQL Server表返回值的問題

[英]Issues returning values from SQL Server table

我有一個應用程序,該應用程序應該采用十進制輸入,將其推入存儲過程並返回一個char值以供該應用程序使用。

出於某種原因,我所有其他存儲過程似乎都正常工作,但是這個特定的存儲過程根本無法工作。

最初,輸入形式為下拉列表,但是列表中的值不正確。

例如:SQL Server表中的0.975在下拉列表中將顯示為1.000。 1.025以某種方式變為1.050。 1.075變成了2.000

因此,我放棄了下拉列表,轉而使用文本框。 我仍然沒有收到正確的返回值。 實際上,我根本沒有獲得任何價值。

這是我的代碼:

形成:

<asp:Label ID="Label2" runat="server" Text="Select RZD: "></asp:Label>   
<asp:TextBox ID="rzdTB" runat="server"></asp:TextBox>
<asp:Label ID="rzdFSLabel" runat="server" Text="Label"></asp:Label>

后面的代碼:

fileNameGenerator fNG = new fileNameGenerator();
fNG.rzd = Convert.ToDouble(rzdTB.Text);
fNG.fileGenerator();
rzdFSLabel.Text = fNG.rzdfsOUT;

Label13.Text = fNG.bcfsOUT + fNG.rzdfsOUT + fNG.anglefsOUT + fNG.powerfsOUT;
lBO.fileName = fNG.bcfsOUT + fNG.rzdfsOUT + fNG.anglefsOUT + fNG.powerfsOUT;

fileNameGenerator()

//declare rzd variable - convert to double
//declare rzdSymbol as the output
c2.Parameters.AddWithValue("@rzd", SqlDbType.Float).Value =rzd;
SqlParameter rzdSymbol = new SqlParameter("@rzdSymbol", SqlDbType.VarChar);
rzdSymbol.Size = 2;
rzdSymbol.Direction = ParameterDirection.Output;
c2.Parameters.Add(rzdSymbol);

//open the connection string and execute the stored procedures
conn.Open();
c1.ExecuteNonQuery();
c2.ExecuteNonQuery();
c3.ExecuteNonQuery();
c4.ExecuteNonQuery();
conn.Close();

bcfsOUT = c1.Parameters["@bcFS"].Value.ToString();

//string sdfsOUT to label2
rzdfsOUT = c2.Parameters["@rzdSymbol"].Value.ToString();

存儲過程:

ALTER PROCEDURE dbo.getRZDSymbol
(
    @rzd decimal(10,5),
    @rzdSymbol varchar(2) OUTPUT
)
AS
    SET NOCOUNT ON

    SELECT @rzdSymbol = rzdSymbol
    FROM fileSymbolTable
    WHERE rzd = @rzd

我覺得很愚蠢,但是答案很簡單。

在調試時,我對c2參數進行了深入研究。 我一直看到“ FLOAT”作為rzd數據類型。 這似乎很奇怪,所以我開始調查我到底從哪里提取數據。 為了使事情更加混亂,我在本地計算機上有兩個數據庫,在網絡上的開發服務器上有一個數據庫。 我相信我仍然迷上了本地計算機,但事實證明我是從網絡數據庫中拉出來的。

將表拖放到網絡上,從本地計算機和BAM重新導入!

突然間它起作用了。 想象一下...

非常抱歉,謝謝大家的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM