C# 使用c将图像的完整路径插入MySQL#

C# 使用c将图像的完整路径插入MySQL#,c#,mysql,C#,Mysql,我需要将图像的完整路径从c#表单存储到MySQL数据库中,并编写以下代码来实现这一点: string correctFileName3 = System.IO.Path.GetFileName(dialog.FileName); string ApplicationPath = Application.StartupPath.Substring(0, Application.StartupPath.Length - 10); ApplicationPath = ApplicationPath.

我需要将图像的完整路径从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_徽标作为字符串插入数据库:

 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#中使用字符串的新语法。像这样:

    字符串查询=$“插入到'testTable'('testColumn')值({youVariable})”中

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

  • “值('myVariable1'、'myVariable2')”-错误

    “值(myVariable1,myVariable2)”-true

  • 当您使用“dialog.FileName”时,您已经有了文件路径,不需要使用System.IO再次获取它 因此,请尝试以下查询:


    insertQuery=$“插入ubc.projectinfo('projectName','companyName','projectNumber','projAddress','ncompany','consultantPhone','nameOfEng1','nameOfEng2','nameOfEng3','consultantAddress','phoneEng1','phoneEng2','phoneEng3','ubc_logo','company_logo','consultant_logo')值({projectNameText Text.Text},{companyNameText.Text}、{projectNumber.Text}、{projAddress.Text}、{nameofcompany.Text}、{consultantPhone.Text}、{nameOfEng1.Text}、{nameOfEng2.Text}、{nameOfEng3.Text}、{consultantAddress.Text}、{phoneEng1.Text}、{phoneEng2.Text}、{phoneEng3.Text}、{ubc@logo}、{

    是否有一个特殊的原因,为什么不使用这样的预处理语句?使用参数化查询可以避免大多数语法错误,因为您不必担心是否正确放置每个引号和括号。此外,它还可以避免SQL注入漏洞。但是,如果您知道如何编写SQL,并且查看 insertQuery在调试时,您应该能够看到错误所在。@nbk我试图使用prepared()虽然如此,但错误仍然存在occurred@Crowcoder错误语法不在引号中,而是在路径字符串中,当我用它插入的任何文本替换此路径值时,会正确地显示您为准备语句编写的代码以及完整的错误消息。据我所知,文件路径中没有任何内容,您无法不经操作直接将其保存为文本在数据库中