I tried to insert record into User table and fetch the Id which is the primary key into another column (CreatedBy) at the same time. But when the record is inserted, the CreatedBy column gets an integer record as “-1”.
Here is the code for inserting
if (mailtxtbx.Text != "" & pass.Text != "" & conpass.Text != "" & txtname.Text !="")
{
if (pass.Text == conpass.Text)
{
if (Filedoc.PostedFile.FileName != "")
{
if (check1.Checked)
{
int Uid = -1;
byte[] image;
Stream s = Filedoc.PostedFile.InputStream;
BinaryReader br = new BinaryReader(s);
image = br.ReadBytes((Int32)s.Length);
string query = @"INSERT INTO Users (email, pass, con_pass, UserRole, Name, CreatedBy, image, CreateDate) VALUES (@email, @pass, @con_pass, @UserRole, @Name, @CreatedBy, @image, @CreateDate);
SELECT SCOPE_IDENTITY();";
using (SqlCommand objCMD = new SqlCommand(query, con))
{
objCMD.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = mailtxtbx.Text.Trim();
objCMD.Parameters.Add("@pass", SqlDbType.VarChar, 100).Value = pass.Text.Trim();
objCMD.Parameters.Add("@con_pass", SqlDbType.VarChar, 50).Value = conpass.Text.Trim();
objCMD.Parameters.Add("@UserRole", SqlDbType.VarChar, 50).Value = 'A';
objCMD.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = txtname.Text.Trim();
objCMD.Parameters.Add("@Uid", SqlDbType.Int, 50).Value = Uid;
objCMD.Parameters.Add("@image", SqlDbType.VarBinary).Value = image;
objCMD.Parameters.Add("@CreateDate", SqlDbType.DateTime, 100).Value = DateTime.Now;
// open connection, execute query, close connection
con.Open();
object returnObj = objCMD.ExecuteScalar();
if (returnObj != null)
{
int.TryParse(returnObj.ToString(), out Uid);
}
con.Close();
}
if (Uid > 0)
{
query = @"INSERT INTO UserWallet (Uid, email, Name, amount) VALUES (@Uid, @email, @Name, @amount)";
using (SqlCommand objCMD = new SqlCommand(query, con))
{
objCMD.Parameters.Add("@Uid", SqlDbType.Int, 50).Value = Uid;
objCMD.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = mailtxtbx.Text.Trim();
objCMD.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = txtname.Text.Trim();
objCMD.Parameters.Add("@amount", SqlDbType.Float, 100).Value = 0; //Change type here accordingly
con.Open();
object returnObj = objCMD.ExecuteScalar();
if (returnObj != null)
{
int.TryParse(returnObj.ToString(), out Uid);
}
cmd.ExecuteNonQuery();
lblsuccess.Visible = true;
Div1.Visible = true;
lblsuccess.Text = "Successfully Signed Up";
lblsuccess.ForeColor = System.Drawing.Color.Green;
lblMessage.Visible = false;
dvMessage.Visible = false;
mailtxtbx.Text = "";
pass.Text = "";
conpass.Text = "";
txtname.Text = "";
}
}
con.Close();
}