Как создать ссылку на файл excel
У меня есть база данных mysql, и я могу сгенерировать из нее файл excel, но я также хочу сгенерировать ссылку на этот файл excel, чтобы я мог подключиться к нему из powerbi. Таким образом, я не буду предоставлять доступ ко всей базе данных, а просто дам доступ к содержимому в файле excel, который будет сгенерирован.
Что я уже пробовал:
String connString = System.Configuration.ConfigurationManager.ConnectionStrings["web"].ToString(); using (conn = new MySqlConnection(connString)) { using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM avance_presupuestario where proyecto ='" + proy2.Text + "'")) { using (MySqlDataAdapter sda = new MySqlDataAdapter()) { cmd.Connection = conn; sda.SelectCommand = cmd; using (DataTable dt = new DataTable()) { sda.Fill(dt); using (XLWorkbook wb = new XLWorkbook()) { wb.Worksheets.Add(dt, proy2.Text); Response.Clear(); Response.Buffer = true; Response.Charset = ""; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment;filename=Avance Presupuestario.xlsx"); using (MemoryStream MyMemoryStream = new MemoryStream()) { wb.SaveAs(MyMemoryStream); MyMemoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); } } } } } }
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
Member 10850253
Я нашел это: https://www.youtube.com/watch?v=5m6dCbYO0Mk, но дело в том, что я использую MYSQL вместо SQL, и SqlParameter не работает.
Не могли бы вы мне помочь?
Спасибо.
CHill60
Объект sqlparameter не будет работать, но я уверен, MysqlParameter будет :-)
Member 10850253
Я не могу найти это утверждение.
Я могу найти только Mysql.Data...
Member 10850253
Я просто удалил некоторые символы из своего заявления, такие как ', delete и drop.
Это лучшее, что я мог сделать, потому что я попробовал параметры, и это дало мне ошибку.
Richard Deeming
using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM avance_presupuestario where proyecto = @proyecto")) { cmd.Parameters.AddWithValue("@proyecto", proy2.Text); ... }
MySQL Connector/Net руководство разработчика :: 4.1.4 работа с параметрами[^]
Sinisa Hajnal
Почему бы не создать представление, к которому вы можете контролировать доступ и позволять пользователям видеть его непосредственно или через какую-то пользовательскую форму? Или показать данные в отчете (основываясь на данных и позволяя пользователям фильтровать данные)?