2013-04-02 201 views
2

我是网络新手我想使用数据表而不是数据库。 我想知道为什么数据表查询与sql查询不同? 我想找到从数据表中的值:可用的任何数据表查询生成器,如SQL查询生成器?

SELECT dbo.General_Ledger.Entry_Amount FROM dbo.General_Ledger WHERE Account_number=lbDebit_Account_numer 

using (SqlConnection connect = new SqlConnection(con)) 
     { 
      int index = lbDebit_Account.FindString(txtDebit_Account.Text); 
      if (0 <= index) 
      { 
       lbDebit_Account.SelectedIndex = index; 
      } 
      SqlDataAdapter da3 = new SqlDataAdapter("SELECT *FROM dbo.General_Ledger", connect); 

      DataTable dt1 = new DataTable(); 
      da3.Fill(dt1); 
      string lbDebit_Account_numer = lbDebit_Account.SelectedValue.ToString(); 
      string row; 
      row= Convert.ToString(dt1.Select(string.Format("'Account_number'={0}",lbDebit_Account_numer))); 
     } 

我想执行这个查询:

SELECT dbo.General_Ledger.Entry_Amount FROM dbo.General_Ledger WHERE Account_number=lbDebit_Account_numer 

回答

0

所以你要参数查询:

SqlDataAdapter da3 = new SqlDataAdapter("SELECT * FROM dbo.General_Ledger WHERE Account_number = @Account_number"); 
da3.SelectCommand.Parameters.AddWithValue("@Account_number", lbDebit_Account.SelectedValue); 

DataTable dt1 = new DataTable(); 
da3.Fill(dt1); 

,现在你有你想要的一行,您可以恢复它是这样的:

DataRow dr = dt1.Rows[0]; 

,然后你可以抓住值过该行的许多不同的方式:

var val = dr[0]; // grabs the value of the first column in the result list 
var val = dr["fieldname"] // grabs the value of a specific field name 

甚至有一些方法会返回键入的数据,因为上述返回object,因为底层值可能是一些事情。所以,如果是你,是你可以做这样的事情后,一个字符串字段:

var val = dr.Field<string>(0) // grabs the value of the first column and returns it typed as a string 
var val = dr.Field<string>("fieldname") // grabs a field and returns it typed as a string 
0

它很简单,U想在此字符串[lbDebit_Account_numer]

DataRow dr = dt1.Select("Account_number = '"+lbDebit_Account_numer ="'"); 
数据表[DT1]基本过滤

ü可以使用

,AND,OR

运营商

单个代码[']需要字符串变量进行比较。

这里你得到数据行,所有的单元格都会以你选择的任何单元格的数组格式。

0

您可以尝试使用DataTable类的DefaultView.RowFilter属性。

实施例:

dataTable.DefaultView.RowFilter = "Account_number=1";