c# - 使用 DAO 将附件上传到 Access 时如何过滤查询?不接受“WHERE”
问题描述
我需要上传一个文件并将其放在用户输入的名称的 Access 内的同一行中。
尝试使用不同的查询:
Recordset rs = db.OpenRecordset("SELECT * FROM tbl_reg WHERE nome_user = @nome ", RecordsetTypeEnum.dbOpenDynaset, 0, LockTypeEnum.dbOptimistic);
还尝试删除 WHERE,是的,它确实选择了整个表,每当我放置 WHERE 时,我都会看到“参数太少。预期为 1”。
if (FileUpload1.HasFile)
{
try
{
string fileExtension = Path.GetExtension(FileUpload1.FileName);
if (fileExtension.ToLower() == ".doc" || fileExtension.ToLower() == ".docx" || fileExtension.ToLower() == ".pdf")
{
if (FileUpload1.PostedFile.ContentLength > 1024000)
{
StatusLabel.ForeColor = System.Drawing.Color.Red;
StatusLabel.Text = "Status do upload: O arquivo deve ter menos de 1000 kb!";
}
else
{
string conexaoAccess = ConfigurationManager.ConnectionStrings["conexaoAccess"].ToString();
using (OleDbConnection conexaodb = new OleDbConnection(conexaoAccess))
{
conexaodb.Open();
OleDbCommand cmd = new OleDbCommand("UPDATE tbl_reg SET titulo_trab = @trab WHERE nome_user = @nome", conexaodb);
var parTrab = cmd.CreateParameter();
parTrab.ParameterName = "@trab";
parTrab.DbType = DbType.String;
parTrab.Value = mdl.trab;
cmd.Parameters.Add(parTrab);
var parNome = cmd.CreateParameter();
parNome.ParameterName = "@nome";
parNome.DbType = DbType.String;
parNome.Value = mdl.nome;
cmd.Parameters.Add(parNome);
int rowsChanged = cmd.ExecuteNonQuery();
//arquivo
try
{
Random r = new Random();
int n = r.Next();
DBEngine dbe = new DBEngine();
Database db = dbe.OpenDatabase("C:\\Users\\Willian\\Documents\\dbPIM\\dbpim.accdb", false, false, "");
Recordset rs = db.OpenRecordset("SELECT * FROM tbl_reg WHERE nome_user = @nome ", RecordsetTypeEnum.dbOpenDynaset, 0, LockTypeEnum.dbOptimistic);
rs.MoveFirst();
rs.Edit();
Recordset2 rs2 = (Recordset2)rs.Fields["Campo1"].Value;
rs2.AddNew();
Field2 f2 = (Field2)rs2.Fields["campo"];
f2.LoadFromFile("C:\\temp\\test" + n + fileExtension.ToLower());
rs2._30_Update();
rs2.Close();
rs._30_Update();
rs.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
预期输出:如果键入的名称与连续的任何名称匹配,则文件将附加到 .mdb。第一个查询执行得很好,但openRecordSet根本没有。
解决方案
推荐阅读
- database - 经过身份验证的开发用户无法在模拟器中写入/创建到 CloudKit 公共数据库
- parallel-processing - 用 MPI_ISEND 和 fortran 拆分数组的问题
- magento - 将所有未显示在 magento 2 产品目录中的值归因
- python - 异常处理:用于捕获异常的 finally-like 习惯用法
- css - 如何在反应中更改抽屉组件materialui的背景颜色?
- python - 如何从python中的数组中删除单个反逗号?
- reactjs - 从使用 npm 开始反应时,我安装了 create-react-app 但之后我无法制作反应文件夹
- typescript - 使用 TypeScript 向 Vue 3 添加全局属性
- python - 检查每列中特定值的唯一性
- bash - 如何获取失败的 Ansible 任务的数量并将其传递给下一个 bash 命令?