asp.net - 将数据表中的值插入数据库
问题描述
我已将父 Gridview 和子 Gridview 值存储到数据表中。我使用了三层架构并希望将这些值保存到数据库中,但是在一次迭代中使用 for 循环应用迭代时,该值是整数,因此需要,但另一次迭代该值是 varchar 我无法转换为 varchar,因为我的一些值是整数和一些 varchar。
public string Insertrecord(DataTable dts,string CourseCode,int CourseId)
{
DBHelper.OpenConection();
DBHelper.BeginTransaction();
string query = "";
for (int i = 0; i <= dts.Rows.Count - 1; i++)
{
for (int j = 0; j <= dts.Columns.Count - 1; j++)
{
query = ("Insert into ShortCourses values('" + CourseId + "','" + CourseCode + "','" + dts.Rows[i][j] + "')");
DBHelper.ExecNonQuery(query).ToString();
}
}
DBHelper.CommitTransaction();
DBHelper.CloseConnection();
return query;
}
解决方案
您应该将所有值视为字符串,因为您持有的值query
是字符串。另外下面不推荐写好代码。请始终进行参数化查询。
public string Insertrecord(DataTable dts,string CourseCode,int CourseId)
{
DBHelper.OpenConection();
DBHelper.BeginTransaction();
string query = "";
for (int i = 0; i <= dts.Rows.Count - 1; i++)
{
for (int j = 0; j <= dts.Columns.Count - 1; j++)
{
query = ("Insert into ShortCourses values('" + CourseId.ToString() + "','" + CourseCode.ToString() + "','" + Convert.ToString(dts.Rows[i][j]) + "')");
DBHelper.ExecNonQuery(query).ToString();
}
}
DBHelper.CommitTransaction();
DBHelper.CloseConnection();
return query;
}
参数化查询。
public string Insertrecord(DataTable dts,string CourseCode,int CourseId)
{
DBHelper.OpenConection();
DBHelper.BeginTransaction();
string query = "";
for (int i = 0; i <= dts.Rows.Count - 1; i++)
{
for (int j = 0; j <= dts.Columns.Count - 1; j++)
{
query = "Insert into ShortCourses values(@Id, @Code, @Val)";
SqlCommand cmd = new SqlCommand(query, con);
//Pass values to Parameters
cmd.Parameters.AddWithValue("@Id", CourseId.ToString());
cmd.Parameters.AddWithValue("@Code", CourseCode.ToString());
cmd.Parameters.AddWithValue("@Val", Convert.ToString(dts.Rows[i][j])));
cmd.ExecuteNonQuery();
}
DBHelper.CommitTransaction();
DBHelper.CloseConnection();
return query;
}
推荐阅读
- java - 获取tomcat阀门类中的webapp名称
- c++ - 如何将花括号初始化程序用于动态大小的数组和新的?
- javascript - 尝试在 Else If 中将文本附加到 DIV 时无法读取 Null 的“classList”属性
- sql - 雪花 - 插入日期
- java - 更新firebase实时数据库中键的值时出现问题
- python - 如何防止从 Django Admin 中删除 Django 模型,除非是级联的一部分
- git - 差异未合并到主文件中
- r - 如何拟合具有给定半径的圆来采样数据点
- extjs - extjs如何将参数传递给组件配置
- c# - 在这种情况下,我应该在 CreateDC 之后使用 DeleteDC