【发布时间】:2014-02-15 18:45:16
【问题描述】:
我正在编写一些代码来尝试获取用户输入的数组以连接并发送到 SQL Server 2012。有人告诉我使用所有这些命令来连接到数据库。
我的一个问题是我一直在查看 Stack Overflow,每个人都建议使用参数而不是连接以避免 SQL 注入,但这是针对我的课程的,我们只有 2 周的 C#,所以我不认为如果我使用参数,他会喜欢的。
我认为我的 try catch 是错误的,上半部分是用红线填充的,你如何使用带有 for 循环的 INSERT 命令?
protected void btnDisplay_Click(object sender, EventArgs e)
{
//try
//{
// System.Data.SqlClient.SqlConnection varname1 = new System.Data.SqlClient.SqlConnection();
// varname1 = "server = LOCALHOST"; Database = Lab1; Trusted_connection = yes;
// varname1.Open();
// System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
// cmd.Connection = conn;
// cmd.CommandText = "Delete From Student";
// cmd.ExecuteNonQuery();
//
string sql = null;
for(int i=0; counter1 >= i; i++)
{
sql += "INSERT into Student VALUES(" + StudentId + Name + Address);
}
varname1.Close();
//}
catch (SqlException ex)
{
MessageBox.Show("Database failed" + ex.Message);
}
}
【问题讨论】:
-
哇,从哪里开始......
-
catch用于修复错误。MessageBox.Show没有修复错误所以你的代码是错误的。 -
我认为自己进行研究并确保代码安全没有任何问题。另外,您的 try 语句已被注释掉。
-
你真的应该让开发环境来验证你所拥有的甚至可以编译的代码——其他任何事情都是在浪费 SO 的资源。甚至这里的转储语法高亮显示大部分代码已被注释掉。
-
关于那些红线。那是 Visual Studio 告诉你有问题。养成的一个好习惯是,一旦你注意到这些问题,就立即解决它们。换句话说,尽早构建,经常构建,当有疑问时,构建。
标签: c# asp.net sql sql-server visual-studio-2010