Aan*_*Aan 4 c# database sql-server asp.net parameterized-query
我试图通过代码在 SQL 数据库中插入一些值:
var connstring = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; ;
var conn = new SqlConnection(connstring);
conn.Open();
SqlCommand command = new SqlCommand("INSERT INTO [Trainer] (Name, ID, [Trainee Counter], image, [Mobile NO], Email, Password) VALUES(:v1, :v2,:v3,:v4,:v5,:v6,:v7);", conn);
command.Parameters.Add(new SqlParameter("v1", SqlDbType.VarChar));
command.Parameters.Add(new SqlParameter("v2", SqlDbType.Int));
command.Parameters.Add(new SqlParameter("v3", SqlDbType.Int));
command.Parameters.Add(new SqlParameter("v4", SqlDbType.VarBinary));
command.Parameters.Add(new SqlParameter("v5", SqlDbType.VarChar));
command.Parameters.Add(new SqlParameter("v6", SqlDbType.VarChar));
command.Parameters.Add(new SqlParameter("v7", SqlDbType.VarChar));
command.Prepare();
command.Parameters[0].Value = TextBox1.Text;
command.Parameters[1].Value = 0;
command.Parameters[2].Value = 0;
command.Parameters[3].Value = FileUpload1.FileBytes;
command.Parameters[4].Value = TextBox3.Text;
command.Parameters[5].Value = TextBox4.Text;
command.Parameters[6].Value = TextBox5.Text;
command.ExecuteNonQuery();
conn.Close();
Run Code Online (Sandbox Code Playgroud)
但我总是得到这个例外:
SqlCommand.Prepare 方法要求所有可变长度参数都具有显式设置的非零大小。
实际上,我已经从我的一个 C++/CLI 项目和 PostgreSQL 中移植了这段代码,它在该项目上运行良好。
小智 5
您应该设置可变长度参数的最大大小
替换所有 varchar(和 varbinary)参数:
command.Parameters.Add(new SqlParameter("v1", SqlDbType.VarChar));
Run Code Online (Sandbox Code Playgroud)
和:
command.Parameters.Add(new SqlParameter("v1", SqlDbType.VarChar, 50));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9564 次 |
| 最近记录: |