you should do something like the following:
private static void InsertSomeData()
{
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
sb.DataSource = @"your server";
sb.InitialCatalog = @"your db";
sb.IntegratedSecurity = true;
string cmdStr = "INSERT INTO Data (id_book,id_person,name_book) VALUES (@id_book, @id_person, @name_book)";
using (SqlConnection conn = new SqlConnection(sb.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
{
cmd.Parameters.AddWithValue("@id_book", "your value");
cmd.Parameters.AddWithValue("@id_person", "your value");
cmd.Parameters.AddWithValue("@name_book", "your value");
int insertCount = cmd.ExecuteNonQuery();
}
}
}
[update]
comparison of ExecuteScalar & ExecuteNonQuery
CREATE TABLE [dbo].[TABLE_A](
[ID] [int] IDENTITY(1,1) NOT NULL,
[NAME] [varchar](100) NOT NULL,
PRIMARY KEY CLUSTERED
(
[ID] ASC
)
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string connStr = @"data source=.\sqlexpress; initial catalog=TEST; integrated security=true;";
string cmdStr = @"insert into TABLE_A(NAME) values(@name)";
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
{
cmd.Parameters.AddWithValue("@name", "my name");
dynamic o = cmd.ExecuteScalar();
Console.WriteLine(o == null ? "null" : o);
o = cmd.ExecuteNonQuery();
Console.WriteLine(o == null ? "null" : o);
}
}
}
}
}
and output:
Quote:
null
1
Press any key to continue . . .