我的代码是--------
SqlConnection cn = new SqlConnection(@"Data Source=CHROMA\SQLEXPRESS;Initial Catalog=marksheet;Integrated Security=True");
cn.Open();
if (cn != null)
{
Console.WriteLine("Enter roll number");
string rollnum =Console.ReadLine();
Console.WriteLine("Enter name");
string name = Console.ReadLine();
Console.WriteLine("Enter gender");
string gen = Console.ReadLine();
Console.WriteLine("Enter DOB");
string DOB = Console.ReadLine();
Console.WriteLine("Enter father name");
string father = Console.ReadLine();
Console.WriteLine("Enter course");
string course = Console.ReadLine();
Console.WriteLine("Enter address");
string add = Console.ReadLine();
Console.WriteLine("Enter city");
string city = Console.ReadLine();
Console.WriteLine("Enter state");
string state = Console.ReadLine();
Console.WriteLine("Enter phone");
string phone = Console.ReadLine();
SqlCommand cmd = new SqlCommand("insert into student (rollno,name,gender,dob,fname,course,address,city,state,phone) values(@rollnum,@name,@gen,@DOB,@father,@course,@add,@city,@state,@phone,)",cn);
int row= cmd.ExecuteNonQuery();
if(row >0)
Console.WriteLine("Record inserted...");
cn.Close();
cn.Dispose();
}
else
Console.WriteLine("please open connection first!!");
答案 0 :(得分:0)
您应该在创建命令之后和执行命令之前绑定参数。
例如:
cmd.Parameters.AddWithValue("@rollnum", rollnum);
(对所有其他参数也一样)
答案 1 :(得分:0)
由于你没有得到完整答案,这是我的..
正如我在评论中所说,您在SqlCommand
中声明了参数名称,但您从未将它们添加为参数名称及其标量值。这就是您的错误消息所说的原因;
必须声明标量变量" @rollnum“
因为它是您在命令中定义的第一个参数。当你尝试执行它时,太正常以期望标量变量而不是参数名称。
还可以使用using
statement自动处理您的SqlConnection
和SqlCommand
,而不是手动调用.Close()
或.Dispose()
方法。
在将来的SQL Server版本中,STATE
可以是reserved word。您可能需要将其用作[STATE]
。
我认为您的列是nvarchar
类型,这是我的示例;
using(var cn = new SqlConnection(conString))
using(var cmd = cn.CreateCommand())
{
cmd.CommandText = @"insert into student (rollno,name,gender,dob,fname,course,address,city,[state],phone)
values(@rollnum,@name,@gen,@DOB,@father,@course,@add,@city,@state,@phone)";
cmd.Parameters.Add("@rollnum", SqlDbType.NVarChar).Value = rollnum;
cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = name;
cmd.Parameters.Add("@gen", SqlDbType.NVarChar).Value = gen;
cmd.Parameters.Add("@DOB", SqlDbType.NVarChar).Value = DOB;
cmd.Parameters.Add("@father", SqlDbType.NVarChar).Value = father;
cmd.Parameters.Add("@course", SqlDbType.NVarChar).Value = course;
cmd.Parameters.Add("@add", SqlDbType.NVarChar).Value = add;
cmd.Parameters.Add("@city", SqlDbType.NVarChar).Value = city;
cmd.Parameters.Add("@state", SqlDbType.NVarChar).Value = state;
cmd.Parameters.Add("@phone", SqlDbType.NVarChar).Value = phone;
cn.Open();
if(cmd.ExecuteNonQuery() > 0)
Console.WriteLine("Record inserted...");
}