2016-05-31 3 views
0

У меня есть таблица. Я хочу обновить таблицу. Фактически у меня есть gridview, который извлекает значения из таблицы SQL. Когда загрузка страницы затем gridview загружает значения. Я хочу, чтобы при вставке новых значений в gridview, а затем в таблицу SQL существующие значения обновления, а также новые значения вставки в той же таблице, используя одну query.How я могу это сделать? Просто скажи мне SQL запрос, который работает в C#, ASP.NET БлагодаряКак обновить существующую запись и вставить новую запись в таблицу SQL? SQL

public void insert(object sender, EventArgs e) 
{ 
string user = Session["name"].ToString(); 
SqlConnection cnn = new SqlConnection("Data Source=HAMEED_KHAN\\SQLEXPRESS;Initial Catalog=db_compiler;Integrated Security=True"); 
SqlCommand cmd3 = new SqlCommand("SELECT User_ID from tbl_user WHERE User_Name='" + user + "'", cnn); 
cnn.Open(); 
string id = cmd3.ExecuteScalar().ToString(); 
int ID = Int32.Parse(id); 
Session["ID"] = ID; 
string d = Session["value"].ToString(); 
SqlCommand cmd2 = new SqlCommand("SELECT Database_id FROM Create_db WHERE Database_Name='" + d + "'", cnn); 
Response.Write("<script>Var Z=Prompt('Enter Table Name');</script>"); 
string dbid = cmd2.ExecuteScalar().ToString(); 
cnn.Close(); 
int D_ID = Int32.Parse(dbid); 
string str = ""; 
string type = ""; 
for (int i = 0; i < GridView2.Rows.Count; i++) 
{ 
str = GridView2.Rows[i].Cells[1].Text.ToString(); 
type = GridView2.Rows[i].Cells[2].Text.ToString(); 
string Name = GridView2.Rows[i].Cells[1].Text.ToString(); 
string Type = GridView2.Rows[i].Cells[2].Text.ToString(); 
string size = GridView2.Rows[i].Cells[3].Text.ToString(); 
CheckBox allow = GridView2.Rows[i].Cells[4].Controls[0] as CheckBox; 
CheckBox primary = GridView2.Rows[i].Cells[5].Controls[0] as CheckBox; 
string UserID = Session["ID"].ToString(); 
int UID = Int32.Parse(UserID); 
string date = DateTime.Now.ToString(); 
string A = (allow.Checked == true ? "NULL" : "NOT NULL"); 
string P = (primary.Checked == true ? "PRIMARY KEY" : ""); 
string Table = Session["TBL_NAME"].ToString(); 
string queryy ="USE db_compiler UPDATE tbl_field SET Column_Name='" + Name + "', Data_Type='" + Type + "',Size='" + size + "',Database_id='" + D_ID + "',Allow_Null_='" + (allow.Checked == true ? "true" : "false") + "',Primary_Key_='" + (primary.Checked == true ? "true" : "false") + "',User_id='" + UID + "',Date='" + date + "' WHERE Table_Name='" + Table + "' IF @@ROWCOUNT=0 insert into tbl_field (Table_Name,Column_Name,Data_Type,Size,Database_id,Allow_Null_,Primary_Key_,User_id,Date) VALUES('" + Table + "','" + Name + "','" + Type + "','" + size + "','" + D_ID + "','" + (allow.Checked == true ? "true" : "false") + "','" + (primary.Checked == true ? "true" : "false") + "','" + UID + "','" + date + "')"; 
    SqlCommand cmd = new SqlCommand(queryy, cnn); 
    SqlDataAdapter ad = new SqlDataAdapter(cmd); 
cnn.Open(); 
    cmd.ExecuteNonQuery(); 
    cnn.Close(); 
} 
} 

gridview-image имя таблицы является ' «первым» у меня есть 3 строки в gridview «Имя», «id», «адрес», когда я вставляю новую строку «ph» и нажимаю «update tabe», а затем обновляю все строки с помощью «ph»

db image

+0

В Интернете есть много ресурсов, за которые вы просите! Поиск в Интернете. –

+0

Я ищу на web.I нашел запрос UPDATE, но я хочу, чтобы это обновление и новая запись вставлялись в одну и ту же таблицу одновременно. – Ashley

ответ

1
foreach (GridViewRow g1 in GridView1.Rows) 
       { 
        SqlConnection con = new SqlConnection(connStr); 
        com = new SqlCommand("insert into student(sid,sname,smarks,saddress) values ('" + g1.Cells[0].Text + "','" + g1.Cells[1].Text + "','" + g1.Cells[2].Text + "','" + g1.Cells[3].Text + "')", con); 
        con.Open(); 
        com.ExecuteNonQuery(); 
        con.Close(); 

       } 

Если вставить новую запись в последней строке GridView затем получить индекс последней вау с помощью:

Int32 index = dataGridveiw1.Rows.Count - 1; 

For More Вы можете обратиться эту статью: Insert Data in Database Using GridView Control

EDIT:

Вы можете использовать этот подход для вставки и обновления данных w с одним запросом:

INSERT INTO student(sid, sname, smarks) VALUES('" + g1.Cells[0].Text + "','" + g1.Cells[1].Text + "','" + g1.Cells[2].Text + "') ON DUPLICATE KEY UPDATE sname="g1.Cells[1].Text", smarks="g1.Cells[2].Text"; 
+0

Я прошу обновить существующую запись и вставить новую запись в ту же таблицу одновременно используя один запрос. Я не прошу вставить запрос? Поймите мой вопрос. – Ashley

+0

@Ashley: вы можете ответить ckeckupdated – Jaimesh

+0

Просьба проверить мой обновленный вопрос. Я попробую ваш запрос, но придет ошибка. Вот ошибка «Неправильный синтаксис рядом с ключевым словом« ВКЛ ».» – Ashley

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