Di seguito è riportato il codice con cui sto lavorando per provare ad inserire i dati nella mia tabella 'ArticoliTBL'. Voglio anche caricare un file immagine sul computer mt. Precedentemente stavo lavorando in Visual Studio solo con i controlli dati all'interno del mio file .aspx per inserire i dati, quindi provare a farlo in C# è nuovo per me. Qualsiasi aiuto sarebbe molto apprezzato. Grazie.Come posso inserire dati in una tabella SQL utilizzando C# e implementare una funzione di caricamento?
Mi viene visualizzato un errore: sintassi non corretta vicino a "UploadedUserFiles".
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
public partial class _CopyOfSubmitArticle : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void uploadbutton_Click(object sender, EventArgs e)
{
string UpPath = Server.MapPath("~/UploadedUserFiles");
int imgSize = FileUpload1.PostedFile.ContentLength;
string imgName = FileUpload1.FileName;
string imgPath = "UploadedUserFiles/" + imgName;
if (FileUpload1.PostedFile.ContentLength > 1000000)
{
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('File is too big')", true);
}
else
{
FileUpload1.SaveAs(Server.MapPath(imgPath));
myinfo.Text = "file" + imgPath + "uploaded.";
}
String connectionString = WebConfigurationManager.ConnectionStrings["ConnectAntiFrack"].ConnectionString;
SqlConnection myConnection = new SqlConnection(connectionString);
myConnection.Open();
string ArticleImg = "UploadedUserFiles/" + FileUpload1.FileName;
string ArticleTitle = ArticleTitleTextBox.Text;
string ArticleContent = ArticleContentTextBox.Text;
string ArticleType = ArticleTypeDropdown.Text.ToString();
string ArticleAuthor = ArticleAuthorTextBox.Text.ToString();
string ArticleBrief = ArticleBriefTextBox.Text;
string ArticleDateTime = DateTime.Now.ToShortTimeString();
string query = "INSERT INTO ArticlesTBL (ArticleTitle, ArticleContent, ArticleType, ArticleImg, ArticleBrief, ArticleDateTime, ArticleAuthor, ArticlePublished, ArticleHomeDisplay, ArticleViews) VALUES (" + ArticleTitle +", " + ArticleContent +", "+ ArticleType +" " + ArticleImg +", "+ ArticleBrief +"," + ArticleDateTime + ", "+ ArticleAuthor +",'False', 'False', '0')";
SqlCommand myCommand = new SqlCommand(query, myConnection);
myCommand.ExecuteNonQuery();
// myinfo.Text = "connection to db is made";
myConnection.Close();
}
Qual è la tua domanda? Cosa non funziona? A proposito, dovresti usare [query parametrizzate] (http://stackoverflow.com/questions/5468425/how-do-parameterized-queries-help-against-sql-injection) per evitare attacchi SQL Injection. – mason
L'errore è perché hai dimenticato una virgola tra ArticleType e ArticleImg, esegui il debug e guarda la stringa 'query' prima dell'esecuzione. Dovresti davvero usare una query parametrizzata. –
@JasonGoemaat buona cattura – Jonesopolis