I'm having trouble with the update query.
I couldn't run the second method.
This works:
if (Methods.Update("TABLE1",
"Name", TextBoxName.Text,
"Column1", "1"
) == 1)
This does not work:
if (Methods.Update("TABLE1",
"Name", TextBoxName.Text,
"Surname", TextBoxSurname.Text,
"Column1", "2"
) == 1)
I get this error:
Conversion failed when converting the nvarchar value 'a4' to data type int.
Working method:
public static int Update(string Table1, string Column1, string Column1Value, string WhereColumn, string WhereValue)
{
SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["connection"].ConnectionString);
SqlCommand command = new SqlCommand("UPDATE " + Table1 + " SET " + Column1 + "= @Column1Value " + " WHERE " + WhereColumn + "=@WhereValue", connection);
command.Parameters.AddWithValue("@Column1Value", Column1Value);
command.Parameters.AddWithValue("@WhereValue", WhereValue);
try
{
if ((connection.State == ConnectionState.Closed) || (connection.State == ConnectionState.Broken))
{
connection.Open();
}
int i = Convert.ToInt16(command.ExecuteNonQuery());
return i;
}
finally
{
connection.Close();
}
}
Not working method:
public static int Update(string Table1, string Column1, string Column1Value, string Column2, string Column2Value, string WhereColumn, string WhereValue)
{
SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["connection"].ConnectionString);
SqlCommand command = new SqlCommand("UPDATE " + Table1 + " SET " + Column1 + "= @Column1Value," + Column2 + " = @Column2Value WHERE " + WhereColumn + "=" + WhereValue, connection);
command.Parameters.AddWithValue("@Column1Value", Column1Value);
command.Parameters.AddWithValue("@Column2Value", Column2Value);
command.Parameters.AddWithValue("@WhereValue", WhereValue);
try
{
if ((connection.State == ConnectionState.Closed) || (connection.State == ConnectionState.Broken))
{
connection.Open();
}
int i = Convert.ToInt16(command.ExecuteNonQuery());
return i;
}
finally
{
connection.Close();
}
}
My table content:
TABLE1
------------------------
Name Surname Column1
Name1 Surname1 NULL
Name2 Surname2 NULL
Name3 Surname3 a4
Name4 Surname4 NULL
Name5 Surname5 1
Name6 Surname6 2
Name7 Surname7 3
My table structure :
CREATE TABLE [User1].[TABLE1]
(
[ID] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[Surname] NVARCHAR (50) NOT NULL,
[Column1] NVARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([ID] ASC)
);
I couldn't understand the reason.
Thanks in advance.