2017-01-04 10 views
-1

エラーを修正する方法はありますか? ORステートメントを作成したいのですが、コード内では機能しません。コードを以下に示します。コード機能を確認するためにORを削除しましたが、そのコードを削除すると機能します。だから私は本当に私のコードの本当の問題が何であるか知りたい。ちょうどこのコード行の後にブレークポイントを設定しSQLコマンドのOR文が機能しない

string sql ="Select * FROM [EMP] WHERE Serial_Num='" + TextBox2.Text + "' or Equipment_ID ='" + TextBox1.Text + "'"; 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 

public partial class updateform : System.Web.UI.Page 
{ 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=test;Integrated Security=True"); 
     SqlDataAdapter sda = new SqlDataAdapter("Select * FROM [EMP] WHERE Serial_Num='" + TextBox2.Text + "' or Equipment_ID ='" + TextBox1.Text + "'", con); 

     DataTable dt = new DataTable(); 
     sda.Fill(dt); 
     TextBox3.Text = dt.Rows[0][2].ToString(); 
     TextBox4.Text = dt.Rows[0][6].ToString(); 
     DropDownList1.Text = dt.Rows[0][7].ToString(); 
     TextBox5.Text = dt.Rows[0][18].ToString(); 
     TextBox6.Text = dt.Rows[0][11].ToString(); 
     TextBox11.Text = dt.Rows[0][8].ToString(); 
     TextBox7.Text = dt.Rows[0][20].ToString(); 
     TextBox12.Text = dt.Rows[0][17].ToString(); 
     DropDownList2.Text = dt.Rows[0][23].ToString(); 
     TextBox9.Text = dt.Rows[0][14].ToString(); 
     TextBox10.Text = dt.Rows[0][13].ToString(); 
     TextBox13.Text = dt.Rows[0][12].ToString(); 
     TextBox2.Text = dt.Rows[0][5].ToString(); 
     TextBox1.Text = dt.Rows[0][4].ToString(); 
    } 

    protected void Button2_Click(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection("Data Source =.\\sqlexpress; Initial Catalog = test; Integrated Security = True"); 
     con.Open(); 

     SqlCommand cmd = new SqlCommand(@"UPDATE EMP SET Model='" + TextBox3.Text + "' ,Description= '" + TextBox4.Text + "' ,Location='" + DropDownList1.Text + "',Manufacturer_or_Vendor= '" + TextBox5.Text + "',NCR_or_OOT_History='" + TextBox6.Text + "',Due_date= '" + TextBox11.Text + "' ,Year_of_Manufacturing='" + TextBox12.Text + "',Asset_No= '" + TextBox7.Text + "' ,Status='" + DropDownList2.Text + "',Responsible_Person= '" + TextBox9.Text + "',Available_in_Sapphire= '" + TextBox10.Text + "',Last_OOT_issuance_Date= '" + TextBox13.Text + "' WHERE (Serial_Num = '" + TextBox2.Text + "' or Equipment_ID = '" + TextBox1.Text + "')", con); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
    } 

    protected void Page_load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      Calendar1.Visible = false; 
      Calendar2.Visible = false; 
      Calendar3.Visible = false; 
     } 
    } 

    protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
    { 
     if (Calendar1.Visible) 
     { 
      Calendar1.Visible = false; 
     } 
     else 
     { 
      Calendar1.Visible = true; 
     } 
    } 

    protected void ImageButton2_Click(object sender, ImageClickEventArgs e) 
    { 
     if (Calendar2.Visible) 
     { 
      Calendar2.Visible = false; 
     } 
     else 
     { 
      Calendar2.Visible = true; 
     } 
    } 

    protected void ImageButton3_Click(object sender, ImageClickEventArgs e) 
    { 
     if (Calendar3.Visible) 
     { 
      Calendar3.Visible = false; 
     } 
     else 
     { 
      Calendar3.Visible = true; 
     } 
    } 

protected void Calendar1_SelectionChanged(object sender, EventArgs e) 
{ 
    TextBox11.Text = Calendar1.SelectedDate.ToString("dd/MM/yyyy"); 
    Calendar1.Visible = false; 
} 

protected void Calendar2_SelectionChanged(object sender, EventArgs e) 
{ 
    TextBox12.Text = Calendar2.SelectedDate.ToString("dd/MM/yyyy"); 
    Calendar2.Visible = false; 
} 

protected void Calendar3_SelectionChanged(object sender, EventArgs e) 
{ 
    TextBox13.Text = Calendar1.SelectedDate.ToString("dd/MM/yyyy"); 
    Calendar3.Visible = false; 
} 

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) 
{ 
    if (e.Day.IsOtherMonth) 
    { 
     e.Day.IsSelectable = false; 

    } 
} 

protected void Calendar2_DayRender(object sender, DayRenderEventArgs e) 
{ 
    if (e.Day.IsOtherMonth) 
    { 
     e.Day.IsSelectable = false; 
    } 
} 

protected void Calendar3_DayRender(object sender, DayRenderEventArgs e) 
{ 
    if (e.Day.IsOtherMonth) 
    { 
     e.Day.IsSelectable = false; 
    } 
} 

protected void Button3_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("Default.aspx"); 
} 
} 
+2

準備中のステートメントを使用してください。これにより、現在発生している問題のいくつかを回避できます。 –

+0

「機能していない」のはどうですか?エラーメッセージまたは予想される実際の出力を追加してください。 –

+0

@ piet.t \t データはテキストボックスに表示されません。私のコードの目的は、ユーザーが検索ボタンをクリックしたときです。データはテキストボックスに表示されます。しかし、それが表示されるのは、その文または文を削除した場合のみです。 –

答えて

0

は、あなたがそうのようにSQL文を割り当てる文字列を宣言することができます。次に、プログラムを実行します。

sqlサーバのsql変数の値を貼り付け、その内容を確認します。期待どおりの結果が返された場合、エラーはコード内でさらに下になければなりません。

+0

"SqlDataAdapter sda = new SqlDataAdapter"を削除する必要がありますか? –

+0

番号。 string sql = "Select * FROM [EMP] WHERE Serial_Num =" "+ TextBox2.Text +" 'またはEquipment_ID =' "+ TextBox1.Text +" 'は、SqlConnectionコンマで始まる行にブレークポイントを設定するだけです。 ";SqlConnection con =新しいSqlConnection( "データソース=。\\ sqlexpress;初期カタログ=テスト;統合セキュリティ= True"); SqlDataAdapter sda = new SqlDataAdapter(sql、con) –

+0

ありがとうございます。それは動作しません。 –

0

コンパイル時または実行時にエラーが発生するかどうか、またはエラーが何であるかは、説明から明らかではありません。しかし、問題が何ができるかの野生の推測では、以下のことを試してください。代わりに選択の

  1. を*選択COL1、COL2のように(実際の列を指定してみてください..

  2. の代わりに:

    sda.Fill(DT);

は、データセットを宣言し、データセットを記入し、それが動作するかどうかを確認

DataSet ds = new DataSet(); 
sda.Fill (ds); 

これが機能する場合は、データセットに作成されたテーブルの数と各テーブル内のレコードを確認してください。

+0

テキストボックスには表示されません。私のコードの目的は、ユーザーが検索ボタンをクリックしたときです。データはテキストボックスに表示されます。しかし、それが表示されるのは、その文または文を削除した場合のみです。 –

関連する問題