|
|
Hi,
I would like to add a record in the last row of a database from a c# program. I have a database with the first column called ID which is unique. I tried doing this by finding the maximum number in that column and then adding 1 to it but it doesn' work.
Thanks
|
|
|
|
|
Standard questions
1) What database?
2) "doesnt work" - what doesnt work and what error if any
3) show your code.
|
|
|
|
|
I have a database with some questions and each question has a unique ID.
In my c# program I have a form with a datagrid showing all these questions and 2 textboxes, 1 showing the id of the question (txtQstID) and the other showing the question (txtQst).
Then I have a button (btnAdd) that when I clicks it a new question is added in the datagrid. The new question is entered by the user in the txtQst textbox. But the ID of the question textbox is readonly so the user cannot enter anything in it.
So I did the following in the add button: -
//getting the maximum ID from the Qst_ID column
System.Data.OleDb.OleDbCommand oCommandMax = new System.Data.OleDb.OleDbCommand("SELECT MAX(Qst_ID) FROM Questions", conn);
object objMax = oCommandMax.ExecuteScalar();
string maxValue = objMax.ToString();
//parsing the maxValue to integer
int newRecord = (int.Parse(maxValue));
//adding 1 to the maximum number
newRecord++;
//displaying the new ID in the txtQstID textbox
this.txtQstID.Text = (newRecord.ToString());
//CreateNewQuestion is a method found in Class 1
Class1.CreateNewQuestion(txtQstID.Text, txtQst.Text);
//The following is the code found in Class1: -
public static void CreateNewQuestion(string ID, string Question)
{
DataRow drNew = DS.Tables["Questions"].NewRow();
drNew["Question_ID"] = ID;
drNew["Question"] = Question;
DS.Tables["Questions"].Rows.Add(drNew);
}
|
|
|
|
|
See Guffa's response below...the key in the database should generate itself - generating that key by adding 1 to the highest number will be errorprone.
-- modified at 4:37 Thursday 13th April, 2006
|
|
|
|
|
.
.
.
System.Data.OleDb.OleDbCommand oCommandMax = new System.Data.OleDb.OleDbCommand("SELECT top1 * FROM Questions order by Question_ID desc", conn);
.
.
.
//insetead newRecord++; increase by one
int newRecord = (int.Parse(maxValue)+1);
|
|
|
|
|
And then what happens when 2 users execute this code simultaneously?
|
|
|
|
|
One of them will get an error message because they try to create a record with the same key.
---
b { font-weight: normal; }
|
|
|
|
|
Correct, next question for 10 points
|
|
|
|
|
Set the id field to be a counter/identifier/auto_increment (depending on the flavour of database you are using). Then you just add a record without specifying the id at all, and it automatically gets a new unique id, without any risks of conflicts.
---
b { font-weight: normal; }
|
|
|
|
|
Please help my coding
How can I modify my loop to get a random number in the ArrayList which has values from 1 to 1000?
I use 5 threads running concurrently to get 2 random nuumbers from ArrayList, remove those 2 numbers, add together, and put the result back to ArrayList.
Thanks so much everyone.
using System;<br />
using System.Collections;<br />
using System.Text;<br />
using System.Threading;<br />
<br />
namespace A1_SS<br />
{<br />
class Program<br />
{<br />
static object lockObject;<br />
static ArrayList space;<br />
<br />
static void Main()<br />
{<br />
<br />
space = new ArrayList();<br />
<br />
for (int i = 1; i <= 10; i++)<br />
{<br />
space.Add(i);<br />
<br />
}<br />
<br />
lockObject = new object();<br />
<br />
<br />
Thread t1 = new Thread(new ParameterizedThreadStart(Program.AccessData));<br />
t1.Start(space);<br />
<br />
Thread t2 = new Thread(new ParameterizedThreadStart(Program.AccessData));<br />
t2.Start(space);<br />
<br />
Thread t3 = new Thread(new ParameterizedThreadStart(Program.AccessData));<br />
t3.Start(space);<br />
<br />
Thread t4 = new Thread(new ParameterizedThreadStart(Program.AccessData));<br />
t4.Start(space);<br />
<br />
Thread t5 = new Thread(new ParameterizedThreadStart(Program.AccessData));<br />
t5.Start(space);<br />
<br />
<br />
Thread.Sleep(20 * 1000);<br />
}<br />
<br />
<br />
<br />
public static void AccessData(object param)<br />
{<br />
<br />
ArrayList list = (ArrayList)param;<br />
<br />
lock (list)<br />
{<br />
<br />
Random rand = new Random();<br />
<br />
for (int i = 0; i <= list.Count; i++)<br />
{<br />
<br />
int x = rand.Next(list[i], list[list.]);<br />
list.Remove(x);<br />
Console.WriteLine("x = " + x);<br />
<br />
int y = rand.Next(1, list.Count);<br />
list.Remove(y);<br />
Console.WriteLine("y = " + y);<br />
<br />
int newNumber = x + y;<br />
Console.WriteLine("newNumber = " + newNumber);<br />
<br />
list.Add(newNumber);<br />
<br />
}<br />
<br />
foreach (object obj in list)<br />
Console.WriteLine(obj);<br />
<br />
<br />
}<br />
<br />
<br />
<br />
}<br />
}<br />
}
Eric
|
|
|
|
|
Please dont post the same question 2 hours later.
|
|
|
|
|
Sorry. I won't
I really need help
Thanks
eric
|
|
|
|
|
Please help me how to create a random number in the ArrayList which has values from 1 to 1000.
Thanks
eric
|
|
|
|
|
There is a Random class Random[^]
hope this helps...
Coulda, woulda, shoulda doesn't matter if you don't.
|
|
|
|
|
How do you determine if a value of a comboxbox was changed by being clicked on? I have set databinding on the combobox and the values in it change when i scroll a datagrid.
Please help
|
|
|
|
|
I want authentication user to pass LDAP
can some body help me !!!1
thanks
|
|
|
|
|
Please don't cross post.
Please write a descriptive subject.
---
b { font-weight: normal; }
|
|
|
|
|
AnhTin wrote: I want authentication user to pass LDAP
In what scenario?
In what version of the .NET Framework
What type of application?
This might help, but since you don't give enough information it might not help: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetHT02.asp[^]
"On two occasions, I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question."
--Charles Babbage (1791-1871)
My: Website | Blog
|
|
|
|
|
Can anyone tell me how do I count the number of seconds elapsed after a certain piece of C# code is executed?
|
|
|
|
|
I would create something to hold a start time. And then when I need to know the number of elapsed seconds I'd get the current time and calculate the difference.
"On two occasions, I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question."
--Charles Babbage (1791-1871)
My: Website | Blog
|
|
|
|
|
What do i need to write to get the start time and stop time?
|
|
|
|
|
what do i need to write to get the start time and stop time?
|
|
|
|
|
DateTime - DateTime = TimeSpan
<br />
DateTime start = DateTime.Now;<br />
DoSomething();<br />
TimeSpan result = DateTime.Now - start;<br />
Console.WriteLine(result.Seconds);<br />
_________________________________
Please inform me about my English mistakes, as I'm still trying to learn your language!
|
|
|
|
|
You can also use the Timer class. Set it to one second and count the number of times the ElapsedTimeEvent is called. I think however the DateTime methid would be better.
Coulda, woulda, shoulda doesn't matter if you don't.
|
|
|
|