C#(Windows Forms): How to get the MAX column value from a database table (SQL)

by forme
5 replies
I have a table named invoicedetails in my database.
I have to get the max value of the invoiceNo column and display it after incremented that value by 1. I searched hours on the net and found several solutions. This is what I tried,

(no problem with the connection)
string connectionString = "path";
SqlConnection con;
con = new SqlConnection(connectionString);
con.Open();

SqlCommand cmd = new SqlCommand();
String query = "Select max(invoiceNo) from invoicedetails";
cmd.Connection = con;
cmd.CommandText = query;

int invNo = Convert.ToInt32(cmd.ExecuteScalar());
int newInv=invNo + 1;

textBoxInvoiceNo.Text = newInv.ToString();


I have put this code to the form load event. But the InvoiceNo text box displays nothing. And this
exception displays:-"Object cannot be cast fromDBNull to other types".
Where's the problem?
#c#.net #c#windows #column #database #forms #max #max value #sql #table
  • Profile picture of the author KirkMcD
    Max(InvoiceNo) will be null if there are no values in the table.
    {{ DiscussionBoard.errors[7426813].message }}
    • Profile picture of the author forme
      Well, there are few records in the table.
      {{ DiscussionBoard.errors[7426896].message }}
    • Profile picture of the author forme
      Originally Posted by KirkMcD View Post

      Max(InvoiceNo) will be null if there are no values in the table.
      Well, there are few records in the table.
      {{ DiscussionBoard.errors[7426898].message }}
  • Profile picture of the author CreateSoft
    From a quick glance, I don't see anything wrong, so I would suggest testing your query using a query analyzer and see if it really is returning data.
    {{ DiscussionBoard.errors[7430647].message }}
  • Profile picture of the author TrafficMystic
    have you put an index and primary key on the table?

    I suspect not.. add them and retry..
    {{ DiscussionBoard.errors[7464682].message }}

Trending Topics