首页 > 解决方案 > 使用 c# 将图像的完整路径插入 MySQL

问题描述

我需要将图像的完整路径从 c# 形式存储到 MySQL 数据库中,并编写以下代码来实现这一点:

string correctFileName3 = System.IO.Path.GetFileName(dialog.FileName);
string ApplicationPath = Application.StartupPath.Substring(0, Application.StartupPath.Length - 10); 
ApplicationPath = ApplicationPath.Replace("\\", "\\\\"); 
string consultant_logo = ApplicationPath + "\\images\\" + correctFileName3;

我想通过这个插入查询将consultant_logo 作为字符串插入数据库中:

 String insertQuery = "Insert Into ubc.projectinfo(`projectName`, `companyName`, `projectNumber`, 
`projAddress`, `nameOfConCompany`, `consultantPhone`, `nameOfEng1`, `nameOfEng2`, `nameOfEng3`, 
`consultantAddress`, `phoneEng1`, `phoneEng2`, `phoneEng3`,`ubc_logo`, `company_logo`, `consultant_logo`)
 VALUES ('" + projectNameText.Text + "','" + companyNameText.Text + "' ,'" + projectNumber.Text + "','"+
 projAddress.Text+ "','"+ nameOfConCompany.Text+ "','"+consultantPhone.Text+"', '"+ nameOfEng1.Text + "',
 '"+ nameOfEng2.Text+ "', '"+ nameOfEng3.Text+ "' , '"+consultantAddress.Text+"','"+ phoneEng1.Text+ "', 
'"+ phoneEng2.Text + "','"+ phoneEng3.Text + "', '"+ubc_logo+"','"+company_logo+"', 
'"+consultant_logo+"')";

但发生此错误“您的 SQL 语法有错误”;

标签: c#mysql

解决方案


  1. 在数据库中保存图像路径 - 坏主意。每次传输程序时,都应复制带有图像的文件夹。我建议您将图像作为字节数组保存到数据库中 - 而不是路径。

  2. 尝试在 C# 中使用新的字符串语法。像这样:

    字符串查询 = $"INSERT INTO 'testTable' ( 'testColumn' ) VALUES( { youVariable } )";

  3. 在 MySQL 查询中,您不需要像这样用引号标记变量:

“值('myVariable1','myVariable2')” - 错误

“值(myVariable1,myVariable2)” - 真

  1. 当您使用“dialog.FileName”时,您已经有了文件路径,您不需要使用 System.IO 再次获取它;

所以试试这个查询:

insertQuery = $"插入到 ubc.projectinfo ('projectName', 'companyName', 'projectNumber', 'projAddress', 'nameOfConCompany', 'consultantPhone', 'nameOfEng1', 'nameOfEng2', 'nameOfEng3', 'consultantAddress', “phoneEng1”、“phoneEng2”、“phoneEng3”、“ubc_logo”、“company_logo”、“consultant_logo”)值({projectNameText.Text}、{companyNameText.Text}、{projectNumber.Text}、{projAddress.Text}、 {nameOfConCompany.Text}、{consultantPhone.Text}、{nameOfEng1.Text}、{nameOfEng2.Text}、{nameOfEng3.Text}、{consultantAddress.Text}、{phoneEng1.Text}、{phoneEng2.Text}、{phoneEng3 .Text}、{ubc_logo}、{company_logo}、{consultant_logo})";


推荐阅读