N
news.skynet.be
Hi;
When I do an update query in my ASP.NET page. I am unable to store values of
type string...
The parameters @ID, @LoginID, etc etc etc are properly filled in.
Eg:
@ID = "1"
@LoginID = "Julia"
@LastName="Roberts"
@FirstName="Julia"
@[email protected]
@Grp=1
@Active=1
@Password="Julia"
When I do the objLCmd.ExecuteNonQuery(); the values stored in the database
are:
ID = 1
LoginID =""
LastName=""
FirstName=""
Email=""
Grp=1
Active=1
Password=""
So I lose all Text-type values ?
I'll paste my code here:
-------------------------------------------START----------------------------
----------------
string updateCmd = "UPDATE users SET " +
"ID = 2, LoginID = @LoginID, LastName = @LastName, " +
"FirstName = @Firstname, Email = @Email, Grp = @Grp, Active = @Active,
Password = @Password " +
"WHERE ID = 2";
OdbcCommand objLCmd = new OdbcCommand(updateCmd,con);
objLCmd.Parameters.Add(new OdbcParameter("@ID",OdbcType.Int));
objLCmd.Parameters.Add(new OdbcParameter("@LoginID",OdbcType.Text));
objLCmd.Parameters.Add(new OdbcParameter("@LastName",OdbcType.Text));
objLCmd.Parameters.Add(new OdbcParameter("@Firstname",OdbcType.Text));
objLCmd.Parameters.Add(new OdbcParameter("@Email",OdbcType.Text));
objLCmd.Parameters.Add(new OdbcParameter("@Grp",OdbcType.Int));
objLCmd.Parameters.Add(new OdbcParameter("@Active",OdbcType.TinyInt));
objLCmd.Parameters.Add(new OdbcParameter("@Password",OdbcType.Text));
string[] cols =
{"@ID","@LoginID","@LastName","@Firstname","@Email","@Grp","@Active","@Passw
ord"};
int numCols = e.Item.Cells.Count;
this.Label1.Text = "";
for (int i=2; i<numCols; i++) //skip first, second and last column
{
string colvalue = ((TextBox)e.Item.Cells.Controls[0]).Text;
this.Label1.Text += i.ToString() + " " + colvalue;
switch (cols[i-1])
{
case "@LoginID"bjLCmd.Parameters["@LoginID"].Value = colvalue;break;
case "@LastName"bjLCmd.Parameters["@LastName"].Value = colvalue;break;
case "@Firstname"bjLCmd.Parameters["@Firstname"].Value = colvalue;break;
case "@Email"bjLCmd.Parameters["@Email"].Value = colvalue;break;
case "@Grp"bjLCmd.Parameters["@Grp"].Value = colvalue;break;
case "@Active"bjLCmd.Parameters["@Active"].Value = colvalue;break;
case "@Password"bjLCmd.Parameters["@Password"].Value = colvalue;break;
}
}
objLCmd.Parameters["@ID"].Value =
this.DatagridUsers.DataKeys[(int)(e.Item.ItemIndex)];
try
{
objLCmd.ExecuteNonQuery();
this.DatagridUsers.EditItemIndex = -1;
}
catch(OdbcException error)
{
}
objLCmd.Connection.Close();
this.fillgrid();
-------------------------------------------STOP-----------------------------
When I do an update query in my ASP.NET page. I am unable to store values of
type string...
The parameters @ID, @LoginID, etc etc etc are properly filled in.
Eg:
@ID = "1"
@LoginID = "Julia"
@LastName="Roberts"
@FirstName="Julia"
@[email protected]
@Grp=1
@Active=1
@Password="Julia"
When I do the objLCmd.ExecuteNonQuery(); the values stored in the database
are:
ID = 1
LoginID =""
LastName=""
FirstName=""
Email=""
Grp=1
Active=1
Password=""
So I lose all Text-type values ?
I'll paste my code here:
-------------------------------------------START----------------------------
----------------
string updateCmd = "UPDATE users SET " +
"ID = 2, LoginID = @LoginID, LastName = @LastName, " +
"FirstName = @Firstname, Email = @Email, Grp = @Grp, Active = @Active,
Password = @Password " +
"WHERE ID = 2";
OdbcCommand objLCmd = new OdbcCommand(updateCmd,con);
objLCmd.Parameters.Add(new OdbcParameter("@ID",OdbcType.Int));
objLCmd.Parameters.Add(new OdbcParameter("@LoginID",OdbcType.Text));
objLCmd.Parameters.Add(new OdbcParameter("@LastName",OdbcType.Text));
objLCmd.Parameters.Add(new OdbcParameter("@Firstname",OdbcType.Text));
objLCmd.Parameters.Add(new OdbcParameter("@Email",OdbcType.Text));
objLCmd.Parameters.Add(new OdbcParameter("@Grp",OdbcType.Int));
objLCmd.Parameters.Add(new OdbcParameter("@Active",OdbcType.TinyInt));
objLCmd.Parameters.Add(new OdbcParameter("@Password",OdbcType.Text));
string[] cols =
{"@ID","@LoginID","@LastName","@Firstname","@Email","@Grp","@Active","@Passw
ord"};
int numCols = e.Item.Cells.Count;
this.Label1.Text = "";
for (int i=2; i<numCols; i++) //skip first, second and last column
{
string colvalue = ((TextBox)e.Item.Cells.Controls[0]).Text;
this.Label1.Text += i.ToString() + " " + colvalue;
switch (cols[i-1])
{
case "@LoginID"bjLCmd.Parameters["@LoginID"].Value = colvalue;break;
case "@LastName"bjLCmd.Parameters["@LastName"].Value = colvalue;break;
case "@Firstname"bjLCmd.Parameters["@Firstname"].Value = colvalue;break;
case "@Email"bjLCmd.Parameters["@Email"].Value = colvalue;break;
case "@Grp"bjLCmd.Parameters["@Grp"].Value = colvalue;break;
case "@Active"bjLCmd.Parameters["@Active"].Value = colvalue;break;
case "@Password"bjLCmd.Parameters["@Password"].Value = colvalue;break;
}
}
objLCmd.Parameters["@ID"].Value =
this.DatagridUsers.DataKeys[(int)(e.Item.ItemIndex)];
try
{
objLCmd.ExecuteNonQuery();
this.DatagridUsers.EditItemIndex = -1;
}
catch(OdbcException error)
{
}
objLCmd.Connection.Close();
this.fillgrid();
-------------------------------------------STOP-----------------------------