c# - 使用 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# 中使用新的字符串语法。像这样:
字符串查询 = $"INSERT INTO 'testTable' ( 'testColumn' ) VALUES( { youVariable } )";
在 MySQL 查询中,您不需要像这样用引号标记变量:
“值('myVariable1','myVariable2')” - 错误
“值(myVariable1,myVariable2)” - 真
- 当您使用“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})";
推荐阅读
- java - 有没有一种方法可以让多个线程完全一样地打印当前时间(以毫秒为单位的时间)?
- angular - TypeError:无法读取未定义的属性“进程”
- pandas - 日期时间无属性微秒
- android - $ 和 Android JNI 命名之后是什么?
- c# - 如何使用 Azure Search 中的 Azure Function Query App (C#) 实现最佳且更短的查询执行时间
- gjs - 等待异步 lambda 函数 gjs
- python - Python:维护输入列表的顺序
- c# - 逻辑 OR 和三元运算符求值顺序
- python - 应用 git 过滤器覆盖对文件中某些行的更改的问题
- reactjs - ec2托管的应用程序无法在手机上打开