|
MemberDotNetting wrote: it does not work. That's a vague statement. What do you mean by "it does not work"?
Can you post the code for s.remplirCombo() ? That's where you seem to populate the combobox.
[edit]
OriginalGriff is absolutely right. You need to first construct your list.
[/edit]
/ravi
|
|
|
|
|
public void remplirCombo(List<string> rw)
{
cmb.Items.Add(rw);
}
|
|
|
|
|
That needs to change too: Add is to add a single item. You need AddRange instead.
It may be worth your using Clear on the Items list as well, before you do this (to prevent it adding the values two or more times)
public void remplirCombo(List<string> rw)
{
cmb.Items.Clear();
cmb.Items.AddRange(rw);
}
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
I tried it but AddRange does not accept the list as an argument
|
|
|
|
|
I forgot - AddRange needs an array, not an IEnumerable...
public void remplirCombo(List<string> rw)
{
cmb.Items.Clear();
cmb.Items.AddRange(rw.ToArray());
} I just love consistency in .NET...
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
okey
|
|
|
|
|
That doesn't work, because liste does not have any elements, so trying to assign them with
liste[i] = dgv1.Rows[i].Cells[0].Value.ToString(); will give you an error.
Try this instead:
private void btnSend_Click(object sender, EventArgs e)
{
int i;
List<string> liste = new List<string>();
SendMail s = new SendMail();
s.MdiParent = this;
foreach (DataGridViewRow row in dgv1.Rows)
{
liste.Add(row.Cells[0].Value.ToString());
}
s.remplirCombo(liste);
s.Show();
} (Because you don't care about the row number, I would use a foreach loop instead of the for - it's just a bit clearer to read)
[edit]Typo: "lop" instead of "loop", "teh" instead of "the" - OriginalGriff[/edit]
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
OriginalGriff wrote: because liste does not have any elements, Note to self: don't answer posts before caffeinating.
/ravi
|
|
|
|
|
Took me a while to work out what you meant there - I didn't spot that we have both answered the question...
Yes, I find a large injection is mandatory before my little grey cells begin to mesh with any form of efficiency either!
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
thank you, but it generates an exception: Object reference not set to an instance of an object.
|
|
|
|
|
Where? Which line?
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
liste.Add(row.Cells[0].Value.ToString());
|
|
|
|
|
Which means that either:
1) You missed the line saying:
List<string> liste = new List<string>();
So liste is null.
2) There is no value in the row - which means that it has probably come from a database as DBNull and been translated as null.
Try an experiment:
foreach (DataGridViewRow row in dgv1.Rows)
{
DataGridViewCell cell = row.Cells[0];
if (cell != null)
{
object o = cell.Value;
if (o != null)
{
liste.Add(o.ToString());
}
else
{
Message.Show("Null in cell.Value");
}
}
else
{
MessageBox.Show("Null in cell");
}
}
Or look in the debugger and see which of them is null.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
No, I already instantiate the list, ok I want to try it, thank you
|
|
|
|
|
"Null in cell"
I retrieve data from datagrid via an exel file!
|
|
|
|
|
So you need to check for it and provide a default, or not add it to the list. Or find out why some of your values are blank!
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
anyway thank you
|
|
|
|
|
You're welcome!
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
hello guys... I am trying to write this simple service using this tutorial.
<a href="http://msdn.microsoft.com/en-us/library/aa984464(v=vs.71).aspx">MSDN Tutorial</a>.
To the best of my knowledge, i am doing exactly the same as the tutorial suggests. But still it does not insert the record in the SQL SERVER. The problem is, it does not give an error as well, thats why dont know what to do.
I have tested this insertion operation with another simple Windows Forms application and it works absolutely fine.
What can be the problem? thnx for any pointers.
|
|
|
|
|
We would have to see your code.
|
|
|
|
|
Here you are...
<pre lang="c#">
protected override void OnStart(string[] args)
{
InsertRec();
}
protected override void OnStop()
{
UpdateRec();
}
private void InsertRec()
{
string name = "abc";
string address = "abc";
string className = "abc";
string phone = "123456";
SqlConnection connection = new SqlConnection("Data Source=MUZE-PC\\SQLEXPRESS; Initial Catalog=StudentDB; Integrated Security=SSPI");
SqlCommand command = new SqlCommand("InsertStudent", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@Name", SqlDbType.NVarChar).Value = name;
command.Parameters.Add("@Address", SqlDbType.NVarChar).Value = address;
command.Parameters.Add("@Class", SqlDbType.NVarChar).Value = className;
command.Parameters.Add("@Phone", SqlDbType.NVarChar).Value = phone;
try
{
connection.Open();
int res = command.ExecuteNonQuery();
}
catch (Exception ex)
{ connection.Close();}
finally
{ connection.Close(); }
}
private void UpdateAttendence()
{
int ID = 1;
string machineName = "Ali";
SqlConnection connection = new SqlConnection("Data Source=MUZE-PC\\SQLEXPRESS; Initial Catalog=StudentDB; Integrated Security=SSPI");
SqlCommand command = new SqlCommand("UpdateStudent", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@StudentID", SqlDbType.Int).Value = ID;;
command.Parameters.Add("@Name ", SqlDbType.NVarChar).Value = name;
try
{
connection.Open();
int res = command.ExecuteNonQuery();
}
catch (Exception ex)
{ connection.Close(); }
finally
{ connection.Close(); }
}
</pre>
|
|
|
|
|
It doesn't work because you're using a connection string that uses the current credentials to login to SQL Server. That only works IF:
1) Windows Authentication is turned on in SQL Server.
2) The code is running under an account that the SQL Server trusts.
Your problem is your service is running under LocalSystem by default, which SQL Server does NOT trust.
There are 2 solutions to this. The first is to create a user in SQL Server and assign it's permissions properly to access the database in questions, then modify the connection string in your code to use the account and NOT use Integrated Security.
The second is to change the account that your service is running under, to something like YOUR account. Start->Run->Services.msc. Find your service, then right-click on it and click Properties. Click the LogOn tab and it should be pretty obvious from there.
In the future, you might want to learn WHY those things are listed in the connection string and figure out what each option does.
|
|
|
|
|
hai everyone ,
My problem is i have a employee code like EMPLOYEE
i would like to change this to EMPLOYEE000001,EMPLOYEE000002 this format.
How can i do this? with c# please help me
Arunkumar
Arunkumar
|
|
|
|
|
You can use the Format[^] method like:
uint EmployeeNumber = 1;
String.Format( "EMPLOYEE{8:D}", EmployeeNumber );
Remember you will be limited to 999999 employees.
0100000101101110011001000111001011101001
|
|
|
|
|
It is
string.Format("EMPLOYEE{0:D6}",EmployeeNumber);
|
|
|
|