【发布时间】:2015-08-28 16:42:13
【问题描述】:
这是尝试输入存储在数组中的数据的代码。数组包含数据以及不需要添加到数据库中的空单元格。问题是代码没有抛出任何异常或错误,但也没有在数据库中插入任何数据!请帮助...在此先感谢
public void saveDb(string[,] timeTableId,string[,] start_time,string[,] end_time,string[,] subject_id,string[,] day,string[,] faculty_id)
{
SqlConnection con;
SqlCommand cmd;
con = new SqlConnection("Data Source=.;Initial Catalog=AIS;Integrated Security=True");
con.Open();
for (int i = 0; i < 8; i++)
{
for (int j = 1; j <= 7; j++)
{
if (subject_id[i, j].Length != 0 && subject_id[i, j] != null)
{
cmd = new SqlCommand("INSERT INTO TIMETABLE VALUES('" + subject_id[i, j] + "','" + day[i, j] + "','" + start_time[i, j] + "','" + end_time[i, j] + "','" + subject_id[i, j] + "','" + faculty_id[i, j] + "')", con);
cmd.ExecuteNonQuery();
}
else
{
}
}
}
con.Close();
}
【问题讨论】:
-
SQL Injection alert - 您应该不将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入
-
@marc_s 你能详细说明一下吗?
-
阅读他在评论中的链接,它解释了。
-
如果我尝试创建一个名为:
');DROP Table Timetable;的主题怎么办? -
或者如果这些字段中的任何一个实际上有一个单引号作为其中的有效数据片段怎么办?撇号并不罕见。
标签: asp.net sql-server executenonquery