Struktura wyglada tak:
id int(10) unsigned
X char(30)
600-700 int(10)
701-800 int(10)
801-900 int(10)
901-1000 int(10)
1001-1100 int(10)
1101-1200 int(10)
1201-1300 int(10)
1301-1400 int(10)
1401-1500 int(10)
1501-1600 int(10)
na razie skonstruowałem takie coś:
private void GetCennikNazwa()
{
try
{
dbConnect();
string query = "SELECT nazwa FROM cenniki WHERE id='" + comboBox1.SelectedIndex + "'";
using (MySqlConnection conn = new MySqlConnection(connString))
{
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
conn.Open();
object id = cmd.ExecuteScalar();
if (id != null)
nazwaCennik.Text = id.ToString();
else
nazwaCennik.Text = "No data found";
}
}
conn.Close();
}
catch(Exception ex)
{
MessageBox.Show("Nie udało się pobrać nazwy cennika " + ex.Message);
}
}
private void GetSzeroko()
{
try
{
dbConnect();
string query = "SELECT X FROM " + nazwaCennik.Text + " WHERE SUBSTRING_INDEX(X, '-', -1) >= '" + xValue.Text + "' AND SUBSTRING_INDEX(X, '-', 1) <='" + xValue.Text + "'";
using (MySqlConnection conn = new MySqlConnection(connString))
{
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
conn.Open();
object X = cmd.ExecuteScalar();
if (X != null)
xV.Text = X.ToString();
else
xV.Text = "No data found";
}
}
conn.Close();
}
catch(Exception ex)
{
MessageBox.Show("Nie można pobrać zakresu dla szerokości " + ex.Message);
}
}
private void calculate_Click(object sender, EventArgs e)
{
try
{
GetSzeroko();
GetWysoko();
dbConnect();
string query = "SELECT `" + xV.Text + "` FROM " + nazwaCennik.Text + " WHERE X = (SELECT `COLUMN_NAME` AS Y FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_NAME`='" + nazwaCennik.Text + "' AND SUBSTRING_INDEX(`COLUMN_NAME`,'-',-1) >= '" + yValue.Text + "' AND SUBSTRING_INDEX(`COLUMN_NAME`,'-',1) <= '" + yValue.Text + "')";
using (MySqlConnection conn = new MySqlConnection(connString))
{
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
conn.Open();
object cena = cmd.ExecuteScalar();
if (cena != null)
wartOkno.Text = cena.ToString();
else
wartOkno.Text = "No data found";
}
}
conn.Close();
LiczCenePoRabacie();
}
catch (Exception ex)
{
MessageBox.Show("Nie można obliczyć ceny " + ex.Message);
}
}
Problem pojawia się w momencie wpisania wartości 1000x1000 bo twierdzi, że szerokość jest null