簡體   English   中英

將文本框值傳遞給sql語句

[英]Passing textbox value to a sql statement

我需要根據從一個表單到方法表單的兩個文本框的值來顯示數據。

下面是我的代碼提取我的兩個值工作正常:

txtfrom.Text = dtResults.Rows[0]["asset_open_per"].ToString();

this.txtto.Text = DateTime.Today.ToString("yyyyMM");     

現在,我有兩個值,我將需要這些在sql語句中的where子句,sql語句如下:

public static DataTable GetPostings2(string AssetNumberV, string PeriodFromV, string PeriodToV)

        {

       DataTable dtGetPostings2;

        try

          {

           dtGetPostings2 = new DataTable("GetPostings");

   SqlParameter AssetNumber = new SqlParameter("@AssetNumber", SqlDbType.VarChar, 6);
   AssetNumber.Value = AssetNumberV;

   SqlParameter PeriodFrom = new SqlParameter("@PeriodFrom", SqlDbType.VarChar, 6);
   PeriodFrom.Value = txtfrom; 

   SqlParameter PeriodTo = new SqlParameter("@PeriodTo", SqlDbType.VarChar, 6);
   PeriodTo.Value = frmAsset.txtto; 

 SqlCommand scGetPostings2 = new SqlCommand("SELECT * FROM [POSTING] WHERE [ASSET_NO] = @AssetNumber And PERIOD >= @PeriodFrom AND PERIOD <= @PeriodTo ORDER by PERIOD, JOUR_REF, JOUR_LINE", DataAccess.AssetConnection);

               scGetPostings2.Parameters.Add(AssetNumber);
               scGetPostings2.Parameters.Add(PeriodFrom);
               scGetPostings2.Parameters.Add(PeriodTo); 

               SqlDataAdapter sdaGetPostings2 = new SqlDataAdapter();
               sdaGetPostings2.SelectCommand = scGetPostings2;
               sdaGetPostings2.Fill(dtGetPostings2);

               return dtGetPostings2;
        }

我得到的錯誤是:

非靜態字段,方法或屬性'Assets.frmAssetPostings.txtto'需要對象引用

和其他texbox一樣..

我已經將文本框的屬性更改為public等,是否有其他解決方案可以實現。

提前致謝

您是否曾嘗試在表單內部執行SQL,然后嘗試從app.cofig執行此操作

好吧,您已經在GetPostings2中傳遞參數的值,為什么不使用它們而不是frmAsset的文本框?

           scGetPostings2.Parameters.AddWithValue("@AssetNumber", AssetNumberV); 
           scGetPostings2.Parameters.AddWithValue("@PeriodFrom", PeriodFromV); 
           scGetPostings2.Parameters.AddWithValue("@PeriodTo", PeriodToV); 

順便說一句,你得到錯誤,因為GetPostings2是一個靜態方法,在這個方法中你不能像frmAsset表單那樣引用實例外部對象。

您需要使用TextBoxes的Text屬性,而不是嘗試將TextBox對象分配給我們的Sql參數。

SqlParameter AssetNumber = new SqlParameter("@AssetNumber", SqlDbType.VarChar, 6);     
AssetNumber.Value = AssetNumberV.Text;

對正在讀取值的其余TextBox也執行相同的操作。

this.txtto.Text我假設是一個Texbox,但你使用它作為PeriodTo.Value = frmAsset.txtto; 在您的GetPostings2方法中

您將需要以這種方式使用它frmAsset.txtto.Text; and frmAsset.txtfrom.Text; frmAsset.txtto.Text; and frmAsset.txtfrom.Text;

暫無
暫無

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

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