2013-04-10 2 views
0

Я вставляю пути изображения в базу данных, и когда я получаю путь, я показываю их с тегом img.Вставить команду для asp.net

Я могу это сделать, но не смог найти методы, которые мне нужно написать после SQL-запроса.

Что мне нужно написать после запроса sql?

В Page_Load моя команда выбора работает.

c = new Common(ConfigurationManager.ConnectionStrings["ahapp"]); 
    string sql = "select Query"; 
    string str = ""; 
    DataTable dt = c.GetDataTable(sql); 
    foreach (DataRow item in dt.Rows) 
    { 
     str += "<img src='" + item["path"].ToString() + "' style='width:100px' />"; 
    } 

    dokList.InnerHtml = str; 

Этот код всегда говорит: enter image description here

sql ="INSERT INTO DR_OZLUK VALUES(3," + ddlDoktor.SelectedValue + "," + belgeid + ",3," + str + ",1)"; 
    SqlCommand cmd = new SqlCommand(sql, c); 
    cmd.ExecuteNonQuery(); 

ответ

0

Спасибо всем. Я нашел решение. Я добавляю этот код c.GetExecuteNonQuery(sql); и сделал c глобальным.

2

Ваш c объект, кажется, что-то еще, кроме типа SqlConnection. Что это за классный класс? SqlCommand принимает два параметра. Первый - это строка, которая является либо оператором sql, либо именем хранимой процедуры, а другой аргумент является объектом типа SqlConnection.

2

Оператор вставки уязвим для SQL-инъекций, но проблема не имеет ничего общего с оператором sql. Проблема в том, что вы проходите Common класс вместо Connection объект в SqlCommand Возражение.

Попробуйте этот код:

string connStr = "connection string here"; 
string sqlStatement = "INSERT INTO DR_OZLUK VALUES (3, @val1, @val2, 3, @val3, 1)"; 
using (SqlConnection conn = new SqlConnection(connStr)) 
{ 
    using(SqlCommand comm = new SqlCommand()) 
    { 
     comm.Connection = conn; 
     comm.CommandText = sqlStatement; 
     comm.CommandType = CommandType.Text; 

     comm.Parameters.AddWithValue("@val1", ddlDoktor.SelectedValue); 
     comm.Parameters.AddWithValue("@val2", belgeid); 
     comm.Parameters.AddWithValue("@val3", str); 

     try 
     { 
      conn.Open(); 
      comm.ExecuteNonQuery(); 
     } 
     catch(SqlException e) 
     { 
      // do something with the exception 
      // do not hide it 
      // e.Message.ToString() 
     } 
    } 
} 

Для правильного кодирования

  • использования using заявления для удаления ProPR объекта
  • использование try-catch блока правильно обрабатывать объекты
0

Я думаю, c должен быть объект связи

c = new Common 

Вы проезжаете c в месте соединения объекта.

Подписи SQLCommand создать объект является

public SqlCommand(
    string cmdText, 
    SqlConnection connection 
) 

так в соответствии с ним вашим вторым аргументом должен быть объектом соединения. Именно по этой причине он дает вам ошибку. вы передаете объект Common class для создания объекта команды. visi MSDN, чтобы получить более подробную информацию: http://msdn.microsoft.com/en-us/library/877h0y3a.aspx

0

Либо ваш c не является SqlConnection, либо ваша IDE имеет другую ошибку, которая вводит в заблуждение при вставленной ошибке. Иногда VS2010 ломается при показе ошибок.

0
Or try this, this sample code is very secure and 100% works any time, you can copy paste it but u must put your connection string and table 

    string connectionStr = "connection string STRING"; 
    string sqlQuery = "INSERT INTO yourtable VALUES (ID, @pam1, @pam2)"; 
    ///// Go to Base and execute Query but with trycatch because if you have problem with using connection it will tell you 

    try{ 

    using (SqlConnection conn = new SqlConnection(connStr)) 
    { 
     using(SqlCommand komand = new SqlCommand(conn,sqlQuery)) //command to use connection and Sqlquery 

    string fromcontrol = "test"; //this is string just for test 

      komand.Parameters.AddWithValue("@pam1", fromcontrol.ToString()); 
      komand.Parameters.AddWithValue("@val2", fromcontrol.ToString()); 

       conn.Open(); 
       komand.ExecuteNonQuery(); 
      } 
      catch(SqlException e) 
      { 
    //throw your execption to javascript or response; e.Message.ToString() + "SQL connection or query error"; 
      } 

    catch(Exception ex) 
    { 
    //throw your execption to javascript or response; e.Message.ToString()+ "system error"; 
    } 

finally 
{ 
conn.Close(); 
conn.Dispose(); 
} 

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