插入数据sql语句:
com.CommandText = " Insert into Student values('10','苍井空','25')";
我想问的是:括号内可不可以写变量。
比如:
string a = new string();
string b = new string();
string c = new string();com.CommandText = " Insert into Student values(a,b,c)";
这样写行不行?如果行,a、b、c加不加单引号呢?如果要加的话,到底加的是变量a,还是实际的字母a呢?
com.CommandText = " Insert into Student values('10','苍井空','25')";
我想问的是:括号内可不可以写变量。
比如:
string a = new string();
string b = new string();
string c = new string();com.CommandText = " Insert into Student values(a,b,c)";
这样写行不行?如果行,a、b、c加不加单引号呢?如果要加的话,到底加的是变量a,还是实际的字母a呢?
解决方案 »
- string类里的Split问题
- 窗体最小化后的还原问题
- 如何调用存储过存填充到dataGridView1控件中呀,谢谢指教!
- 如何检验一个类一段时间内是否被触发过
- 请问MS Studio.NET 2005的FrameWork版本号?
- BS结构和网站结构有什么区别啊,它们都是浏览器对服务器的啊?
- 高手请解释含义!!!!!急啊!!在线等待
- 100分求助:如何读取assembly中得版本信息,存储于string类型的变量中?
- WinForm 为何会在无任何错误提示的情况下自动关闭
- 为什么查询Access表时,用了like条件查询,就得不到结果呢
- 求 WPF 里 实现 鼠标截图的代码
- T-SQL问题:Count()时提示“列未在聚合函数或Group By中”
com.CommandText = commandText;
com.Parameters.AddWithValue("@a", a);
com.Parameters.AddWithValue("@b", b);
com.Parameters.AddWithValue("@c", c);
string name = "苍井空"; // 这是谁,不认识
int age = 25;string strCmd = @"insert into Student (id, name, age) values ("+id.ToString()+','+name+','+age.ToString()+')';SqlCommand cmd = new SqlCommand(strCmd, conn);不过建议用SqlParameter类来实现这样的参数,那个比这个灵活和方便。
//字符串就加'',不是字符串就不用'',直接"+stuInfo.字段+"
com.CommandText = " Insert into Student values('"+stuInfo.字段+"','"+stuInfo.字段名+"')";
然后在外面调用这个方法的时候把值这样传入student stuInfo = new Student()
{
stuInfo.字段名= txtbox1.text;
stuInfo.字段名= txtbox2.text;
};
然后调用增加的方法参数就是stuInfo
{
stuInfo.字段名= txtbox1.text,
stuInfo.字段名= txtbox2.text
};看错,前面那个应该是这样写。
strSql.Append("insert into AV_Info(");
strSql.Append("AVId,AV_Name,AV_Age)");
strSql.Append(" values (");
strSql.Append("@AVId,@AV_Name,@AV_Age)");
SqlParameter[] parameters = {new SqlParameter("@AVId", SqlDbType.Int,4),
new SqlParameter("@AV_Name", SqlDbType.VarChar,255),
new SqlParameter("@AV_Age", SqlDbType.Int,4)};
parameters[0].Value = model.AVId;
parameters[1].Value = model.AV_Name;
parameters[2].Value = model.AV_Age;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
foreach (Control c in groupBox1.Controls)
{
if (c is CheckBox)
{
if ((c as CheckBox).Checked && textBox1.Text != "")
{
textBox1str = textBox1.Text; //textBox1str已经赋值了啊
}
}
}
using (SqlCommand com = con.CreateCommand())
{
com.CommandText = " Insert into 开奖数据 values('"+textBox1str+"')"; //为什么报错?说使用了未赋值的textBox1str
com.ExecuteNonQuery(); //执行插入
}上面的textBox1str为什么说没有赋值呢?
string textBox1str = "" ;
string textBox1str=string.Empty ;
在带上数据类型,这样安全些,别的都没法防止SQL注入
com.Parameters.AddWithValue("@a", a);
com.Parameters.AddWithValue("@b", b);
com.Parameters.AddWithValue("@c", c);
com.ExecuteNonQuery(); 忘了问:
插入这么一句数据,是插在表中的哪个位置呢?没有指定插入的位置啊?不可能随便一行插入吧
string sql = string.Format("insert into student values(" + a + " ," + b + ")");
你也可以使用string类的Format()方法中的占位符,如下string sql = string.Format("insert into student values('{0}','{1}')",a,b);注意,以上如果变量为字符串类型,需要将占位符用单引号括起来。但是推荐使用SqlParameter,楼上已经说都很详细了。
谢谢
at 属性列;