2017-02-08 5 views
0

У меня возникла проблема с использованием String Format для двух параметров в C#. Здесь я хочу показать данные, которые больше и ниже значения, введенного мной. Для данных, которые не включены в эти критерии, я хочу показать в другом DataGridView. Кто-нибудь может мне помочь? Вот мой код:Использование строкового формата для двух параметров в C#

StringBuilder sb = new StringBuilder(); 
StringBuilder sb2 = new StringBuilder(); 

OleDbConnection kon = new OleDbConnection(koneksinectar); 
DataTable dt = new DataTable(); 

OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [Sheet1$]", kon); 
DataSet coba = new DataSet(); 
adapter.Fill(coba); 

var table = coba.Tables[0]; 
var view = new DataView(table); 
var view2 = new DataView(table); 

if (textBox1.Text != "") 
{ 
    sb.Append(string.Format("[Saldo] > '{0}'", textBox1.Text)); 
} 

if (textBox2.Text != "") 
{ 
    if (sb.Length > 0) 
    { 
    sb.Append(" AND "); 
    } 

    sb.Append(string.Format("[Saldo] < '{0}'", textBox2.Text)); 
} 

sb2.Append(string.Format(//here I want to do the formula textBox1.Text <[Saldo]> textBox2.Text)); //What code I must write ? 

view.RowFilter = sb.ToString(); 
view2.RowFilter = sb2.ToString(); 

ViewNectarGV.DataSource = view; 
NectarUnscheduleGV.DataSource = view2; 

ответ

2

Если вы используете C# 6 вы можете просто сделать

$"'{textBox1.Text}' < [Saldo] AND [Saldo] > '{textBox2.Text}'"; 

иначе вы можете сделать

string.Format("'{0}' < [Saldo] AND [Saldo] > '{1}'",textBox1.Text, textBox2.Text); 
+0

Я пробовал ваш код и говорит об ошибке Не удается выполнить '>' операцию на System.Boolean и System.String. –

+0

Это должно теперь работать. Прежде чем ваш запрос будет делать первый меньше, это приведет к выводу bool. Затем вы делаете больше, чем на bool и втором значении. – Drawaes

0

Я не уверен, я понимаю, что вы» спрашиваю, но я думаю, что это то, что вы хотите. Предполагая, что текстовые поля должны быть int и вы пытаетесь найти, если они больше или меньше.

int num1; 
int num2; 
if (textBox1.Text != "" && textBox2.Text != "") { 
    num1 = int.Parse(textBox1.Text); 
    num2 = int.Parse(textBox2.Text); 
    string str; 
    if(num1 > num2) { 
     str = string.Format("{0} > {1}", num1, num2); 
    } else if(num1 < num2) { 
     str = string.Format("{0} < {1}", num1, num2); 
    } else { 
     str = string.Format("{0} = {1}", num1, num2); 
    } 
}