Мне нужно загрузить файл и поместить его в ту же строку внутри Доступа к имени, набранному пользователем.
попытался использовать другой запрос:
Recordset rs = db.OpenRecordset («SELECT * FROM tbl_reg WHERE nome_user = @nome», RecordsetTypeEnum.dbOpenDynaset, 0, LockTypeEnum.dbOptimistic);
* WHEи да, он выбирает всю таблицу, всякий раз, когда я помещаю ГДЕ, я ловлю «Слишком мало параметров. Ожидаемый 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 вообще не выполняется.