|
No problem - sorry I can't do more!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Hi,
I have a dialogue window. In that I have a label called "Filter By". Its of Combo box style.
I am trying to type a letter “e”. It should bring up the next item in the drop down that begins with “E” but instead closes the window.
Any suggestions on how to rectify this?
|
|
|
|
|
What kind of app? Windows Forms, WPF, ASP.NET ... ?
Also, without seeing any code behind the window, it's going to be quite difficult to tell you what's going on. Just dropping a ComboBox on a form and running it isn't going to do what you described at all, so there's got to be some code on the form that's not behaving like you expect.
|
|
|
|
|
|
As you haven't provided any real detail, the most detailed answer I can give is that you'll need to do a SELECT using your value.
|
|
|
|
|
"SELECT"? He didn't say it was a SQL based database. You're making a lot of assumptions here
|
|
|
|
|
This is true. It could be a find for all I know. Well spotted.
|
|
|
|
|
It's easy:
commandText = "SELECT user from UserTable where id = @username"
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.AddWithValue("@username", tbUser.Text);
|
|
|
|
|
It's not hard, it's easy - once you learn how to do it.
Just to add to what Richard gave you, the whole code is along the lines of:
using (SqlConnection con = new SqlConnection(strConnect))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("SELECT Age, Description FROM myTable WHERE ID = @ID", con))
{
cmd.Parameters.AddWithValue("@ID", myTextBox.Text);
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
int age = (int) reader["Age"];
string desc = (string) reader["Description"];
Console.WriteLine($"{age}\n{desc}");
}
}
}
}
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Answering a question like this is harder.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
Step one: Add new LINQ to SQL item from project Item in to your project and call it DXD (or any convinient name you like)
Step two: drag and Drop the Employee TABLE from Server Explorer in your IDE to your LINQ to SQL DataContext object.
Step Three: Add data source by selecting Object as data source
Step Four: Go to your form and drag and drop Salary field from your data source object to your form
Step Five: Set the Data Source of your EmployeeDatabinding object as EmployeeDatabinding.DataSource = DXD.Employee
...
it is too long try another approach
|
|
|
|
|
And what happens if the database is not SQL Server? What if the textbox is an ASP.NET Core one? You are making a lot of assumptions with your answer.
|
|
|
|
|
Pete O'Hanlon wrote: And what happens if the database is not SQL Server? What if the textbox is an ASP.NET Core one? You are making a lot of assumptions with your answer. Same can be said from OG's answer, which I still find very valuable.
The assumption for SQL Server is a valid one; if it is another database a similar technique is used and the example given remains valid with minimal change.
I'd argue that it should program against the interface, and use the CreateCommand method from the connection, taking the value of the textbox as an argument.
using (SqlConnection con = new SqlConnection(strConnect))
using (IDbCommand cmd = con.CreateCommand())
{
cmd.CommandText = "bla";
con.Open(); And yes, even that would be improved by using the DBProviderFactory, getting the connectionstring and provider from the Settings.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
There are as many ways to do this as there are people answering this question. Most of them depend on what mechanism you're using to access your database - Entity Framework - ADO - LINQ to SQL, or whatever. I personally prefer ADO, and I've written a reasonably generic DAL object to do it.
Generic DAL using ADO[^]
It can process stored proc calls or straight-up queries, and can map the returned data set to any object.
Beyond that, your question is so vague that there's nothing more I can suggest
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
How big is the "database" (table)? Sometimes, it's simply more efficient to load the entire table into memory and reference it (i.e. for "look-ups") during data entry. No fancy querying required.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
private void CheckContactNumber()
{
string checkContactNum = "SELECT COUNT(*) FROM Employee WHERE ContactNumber = " + addContactNum.Text + " "; //01234567890
OleDbCommand cmd = new OleDbCommand(checkContactNum, conn);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
//if (dr.Read() && addContactNum.Text != "")
if (dr.Read())
{
int count = (int)dr[0];
if(count>0)
{
err += "Contact number is already listed in the database\r\n";
errorContactNum.Visible = true;
uniqueContactNumber = false;
}
}
conn.Close();
}
|
|
|
|
|
t's not hard, it's easy - once you learn how to do it.
Just to add to what Richard gave you, the whole code is along the lines of:
using (SqlConnection con = new SqlConnection(strConnect))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("SELECT Age, Description FROM myTable WHERE ID = @ID", con))
{
cmd.Parameters.AddWithValue("@ID", myTextBox.Text);
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
int age = (int) reader["Age"];
string desc = (string) reader["Description"];
Console.WriteLine($"{age}\n{desc}");
}
}
}
}
|
|
|
|
|
I have c# windows form application which displays the real time data from a board. I want to plot this data in a point graph in c#. Help me with this. I have given my code below which displays the data from board.
namespace flowboard_v2
{
public partial class flow_click : Form
{
public flow_click()
{
InitializeComponent();
}
[DllImport("C:\\Users\\JivaSci\\Desktop\\fluigent\\bin\\SDK\\FRP\\C++\\Cpp_Windows\\frp_c_64.dll", CallingConvention = CallingConvention.StdCall)]
public static extern UInt64 frp_initialization(ushort serial);
[DllImport("C:\\Users\\JivaSci\\Desktop\\fluigent\\bin\\SDK\\FRP\\C++\\Cpp_Windows\\frp_c_64.dll", CallingConvention = CallingConvention.StdCall)]
public static extern Int64 frp_get_serial(UInt64 handle, ref ushort serial, ref ushort version);
[DllImport("C:\\Users\\JivaSci\\Desktop\\fluigent\\bin\\SDK\\FRP\\C++\\Cpp_Windows\\frp_c_64.dll", CallingConvention = CallingConvention.StdCall)]
public static extern Int64 frp_close(UInt64 handle);
[DllImport("C:\\Users\\JivaSci\\Desktop\\fluigent\\bin\\SDK\\FRP\\C++\\Cpp_Windows\\frp_c_64.dll", CallingConvention = CallingConvention.StdCall)]
public static extern Int64 frp_read_flow(UInt64 handle, byte index, ref byte timestamp, ref float flow);
[DllImport("C:\\Users\\JivaSci\\Desktop\\fluigent\\bin\\SDK\\FRP\\C++\\Cpp_Windows\\frp_c_64.dll", CallingConvention = CallingConvention.StdCall)]
public static extern Int64 frp_data_FU(UInt64 handle, byte index, ref byte cal, ref byte res, ref byte artcod, ref byte sf, ref byte unit, ref byte tb);
public void Test()
{
/* Flow board variable declaration */
UInt64 frpHandle = 0;
ushort Serial = 0;
ushort Version = 0;
/* Flow-rate acquisition variables */
byte sensor_index = 0; // sensor index coresponds to flow-unit port on the flowboard from 0 to 7
byte TimeCheck = 0;
float flow_rate = 0;
uint loop = 0;
frpHandle = frp_initialization(0);
RTBox.Text+=("\n FRP session initialized");
frp_get_serial(frpHandle, ref Serial, ref Version);
RTBox.Text += ("\n FLOWBOARD SN:" + Convert.ToInt32(Serial));
if (Serial != 0)
{
frp_read_flow(frpHandle, sensor_index, ref TimeCheck, ref flow_rate);
RTBox.Text += ("\n Flow-rate:" + Convert.ToSingle(flow_rate) + "\t ul/min");
}
frp_close(frpHandle);
RTBox.Text += ("\n FRP session closed");
}
private void button1_Click(object sender, EventArgs e)
{
Test();
}
|
|
|
|
|
|
I am trying to plot the flow rate value(micro litres) and time(seconds) . so flow rate is my y axis and time is my x axis . whenever i click on button a new flow rate value is obtained which should to be updated on the graph
|
|
|
|
|
Member 14652449 wrote: whenever i click on button a new flow rate value is obtained which should to be updated on the graph So what code do you have that is activated when you click on a button? You just need to update your plot values and redraw the graph.
|
|
|
|
|
I have this code in my DAL:
public async Task<IList<CompanyHeaderEntity>> GetCompanyHeadersAsync()
{
var t = await Task.Factory.StartNew(() =>
{
List<CompanyHeaderEntity> results = new List<CompanyHeaderEntity>();
using (var db = GetDataContext())
{
try
{
results = (from c in db.Companies
where !c.DeletedDT.HasValue
select new CompanyHeaderEntity
{
Id = c.Id,
CompanyName = c.CompanyName
}).OrderBy(x => x.CompanyName).ToList();
}
catch (Exception e)
{
throw;
}
return results;
}
});
return t;
}
What I'd like to do is pass in a delegate, so that I could say "Give me all Companies where [whatever]." But in all cases, I want to include the WHERE clause I already have in there.
where !c.DeletedDT.HasValue
So I somehow need to append the deleted check to whatever I pass in.
What's the right way to do this?
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
Have you tried including a predicate as argument?
public async Task<IList<CompanyHeaderEntity>> GetCompanyHeadersAsync(Predicate<Company> predicate)
And then
where !c.DeletedDT.HasValue && predicate(c)
"Five fruits and vegetables a day? What a joke!
Personally, after the third watermelon, I'm full."
|
|
|
|
|
Good idea. Thanks!
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
OK, so the predicate is referencing the DB entity 'Company', whereas my code references my ENTITY called CompanyHeaderEntity, so it doesn't compile
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|