2013-12-02 3 views
1

Я использую Visual Studio 2010 для создания простого веб-сайта для назначения в колледж. Я пытаюсь создать контактную форму, которая отправляет имя пользователя, адрес электронной почты и сообщение в мою таблицу базы данных «Сообщения».Выполнение команды INSERT с использованием ASP.net

Я создал соответствующий веб-сервис, и я знаю, что он работает, когда я пытаюсь загрузить GET данные из таблицы. Я просто немного запутался в том, как я могу записать данные в таблицу INSERT.

Ниже приводится код, который относится к моему веб-сервису. Метод, которым я занимаюсь, это addMessage() Я вызываю метод при нажатии кнопки, расположенной на странице contact.aspx.

public class Customers : System.Web.Services.WebService { 

    [WebMethod] 
    public DataSet getCustomers() { 
     SqlConnection conn; 
     SqlDataAdapter myDataAdapter; 
     DataSet myDataSet; 
     string cmdString = "Select * From Customers"; 
     conn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;AttachDbFilename=C:\\Users\\n00093500\\Desktop\\MMCA2\\APP_DATA\\NORTHWIND.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); 
     myDataAdapter = new SqlDataAdapter(cmdString, conn); 
     myDataSet = new DataSet(); 
     myDataAdapter.Fill(myDataSet, "Customers"); 
     return myDataSet; 
    } 

    [WebMethod] 
    public void addMessage(String n, String e, String m) 
    { 
     SqlConnection conn; 
     SqlDataAdapter myDataAdapter; 
     SqlCommand myCommand = new SqlCommand("INSERT INTO Messages VALUES("+n+","+e+","+m+")"); 
     conn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;AttachDbFilename=C:\\Users\\n00093500\\Desktop\\MMCA2\\APP_DATA\\NORTHWIND.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); 
     //UNSURE WHAT TO DO FROM THIS POINT... CAN I USE myDataAdapter to execute a query? 
    } 

} 

Цените любую помощь, которую вы, ребята, могли бы иметь! Thanks

+1

Вы имеете на то право. Этот код уязвим для SQL-инъекций. Это практически попрошайничество, чтобы его взломали. –

+0

Мне сейчас все равно, я просто изучаю голые кости работы с ASP. Просто нужно знать, как помещать данные в форму в таблицу моих сообщений. – Javacadabra

+1

@Javacadabra. Я думаю, что это плохой подход к проблеме беспокойства Джоэла. Это важно, и на самом деле не сложнее, чем делать это по-своему. –

ответ

5
[WebMethod] 
public void addMessage(String n, String e, String m) 
{ 
    string sql = "INSERT INTO Messages VALUES(@n, @e, @m)"; 
    using (var conn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;AttachDbFilename=C:\\Users\\n00093500\\Desktop\\MMCA2\\APP_DATA\\NORTHWIND.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")) 
    using (var cmd = new SqlCommand(sql, conn)) 
    { 
     //change these three lines to use actual database column types, lengths 
     //I'll pretend "e" is a date column just to show an example of how that might look 
     cmd.Parameters.Add("@n", SqlDbType.NVarChar, 50).Value = n; 
     cmd.Parameters.Add("@e", SqlDbType.DateTime).Value = DateTime.Parse(e); 
     cmd.Parameters.Add("@m", SqlDbType.NVarChar, 50).Value = m; 

     conn.Open(); 
     cmd.ExecuteNonQuery(); 
    } 
} 
+0

Идеальный Джоэл, имеет большой смысл, спасибо за помощь! Принять ответ через 5 минут – Javacadabra

Смежные вопросы