Insert data into SQL Server from C# code

asp.net, c#, sql-server

Solution

INSERT INTO student (name) values ('name')

Omit the `id` column altogether, it will be populated automatically. To use your variable, you should parameterise your SQL query.

string sql = "INSERT INTO student (name) values (@name)";
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@name", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = test;
cmd.ExecuteNonQuery();

You should never attempt to do this by constructing a SQL string containing the input value, as this can expose your code to SQL injection vulnerabilities.

Problem

I have a table `student` (`id, name`). Then I have one textbox, for entering the name, when click on submit button, it inserts the data into the database. So how can I insert only to name, not id because id is auto increment? I tried this ``` insert into student(id, name) values(,name) ``` but it is not insert to my table. This is my code : ``` protected void Button1_Click(object sender, EventArgs e) { string test = txtName.Text; SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Person.mdf;Integrated Security=True;User Instance=True"); string sql = "insert into student(name) values ('test')"; try { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); } catch (System.Data.SqlClient.SqlException ex) { string msg = "Insert Error:"; msg += ex.Message; } finally { conn.Close(); } } ```

Original source