解决方案 »
- 数字类型的字段添加不进去~求高手解决下~
- 怎样执行了一个方法之后停顿一下,再执行下一个方法?
- C# 多线程返回值怎么获得。
- c#编写的ActiveX控件里怎样调用客户端页面的javascript函数
- 二维数组转DataTable 有自定义数据类型怎么转?转之后怎么正确读取
- 关于MonthCalendar控件的问题
- (WinForm)怎样调用当前活动子窗体中的过程
- 救命啊,打不开创建的项目
- 问个关于代理的问题
- 大图片的处理问题!!将图片序列化为二进制流,还是用重画技术??????????
- 请问关于updclient的多目标广播的一些问题.............
- 一个超级简单文件操作怎么会有错?
string sql = "INSERT INTO dbo.1([姓名],[职务],[任职日期],[离职日期]) values(a,b,c,d)";
改成
string sql = "INSERT INTO dbo.1([姓名],[职务],[任职日期],[离职日期]) values('"+a+"','"+b+"','"+c+"','"+d+"')";
private void xx(SqlConnection conn,string a,string b,string c,string d)
{
string sql = "INSERT INTO dbo.tabname([姓名],[职务],[任职日期],[离职日期]) values(@a,@b,@c,@d)";
conn.Open();
try
{
SqlCommand cmd = new SqlCommand(sql, conn);
AddParameter(cmd, "@a", a);
AddParameter(cmd, "@b", b);
AddParameter(cmd, "@c", c);
AddParameter(cmd, "@d", d);
cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}private void AddParameter(SqlCommand cmd, string name, string a)
{
DbParameter p = cmd.CreateParameter();
p.ParameterName = name;
p.DbType = DbType.String;
p.Value = a;
p.Direction = ParameterDirection.Input;
cmd.Parameters.Add(p);
}
命令要执行。cmd.ExecuteNonQuery();
你的cmd 什么都么有执行,当让不对了。
http://msdn.microsoft.com/zh-cn/library/System.Data.SqlClient.SqlCommand(v=vs.110).aspx
string sql = "INSERT INTO dbo.1([姓名],[职务],[任职日期],[离职日期]) values(a,b,c,d)";
这a,b,c,d是字符串变量啊,怎么跑到一个字符串常量sql里面去了。。而且cmd命令么执行。1楼拼接字符串的形式虽然暂时解决了问题,但又引发了SQL注入的安全隐患。2楼改成参数化查询,解决了sql语句的问题,并添加了cmd.ExecuteNonQuery();算是真正解决了问题。总得数据库操作流程不熟悉:
【打开数据库】-【实例化查询字符串并附加参数】-【执行查询】-【判断执行结果和处理结果集】-【关闭数据库】
private void Form1_Load(object sender, EventArgs e)
{
SqlDataAdapter sda = new SqlDataAdapter(//创建SqlDataAdapter对象
"select * from tb_student",
"server=WPPP-MOUI877YVW\\MROWW;database=db_test;Trusted_Connection=true");
DataSet ds = new DataSet();//创建数据集DataSet对象
sda.Fill(ds);//调用SqlDataAdapter对象的Fill()方法填充数据集
dataGridView1.DataSource = ds.Tables[0];//将数据集绑定到DataGridView1控件
}
cmd.ExecuteNonQuery();
否则你拼接好了sql语句不执行,就相当于白忙乎了