I have six tables in my database; their schema is as follows:
1) postad
userid varchar(20)
cityid varchar(20)
Ucategory_id varchar(20)
ad_id varchar(20)
title varchar(MAX)
ad_description varchar(MAX)
img_id int username varchar(20)
video varchar(MAX)
subcategory_id varchar(50)
date_creation datetime
postid int
2) user details
userpwd varchar(20)
emailid varchar(30)
mobile numeric(10, 0)
squestion varchar(MAX)
sanswer varchar(MAX)
gender varchar(20)
status_user varchar(20)
3)sub category
subact_id varchar(50)
category_id varchar(20)
subcat_name varchar(50)
4) imagegallery
img_id int Unchecked
image_size bigint
image_content image
5) Adtype
adid varchar(20)
adtype varchar(20)
6) category
cat开发者_StackOverflow_id varchar(20)
cat_name char(150)
I want to insert a record into the postad
table. How would I go about doing this? Any help will be appreciated.
Use the INSERT
statement.
In general, one way to formulate your query is like this:
INSERT INTO tablename (columnlist) VALUES (valuelist);
You'd replace tablename
with the name of the table you wish to insert into (in this case, postad
). Also, you'd replace "columnlist
" with the names of the columns you want to insert values into (separated by commas), and replace "valuelist
" with the values that correspond to those columns (also separated by columns).
For example, to insert the values of 1
and 2
for userid
and cityid
, you'd do the following:
INSERT INTO postad (userid, cityid) VALUES (1, 2);
In sqlserver create procedure as:
CREATE PROCEDURE PSetPostAd
(
@userid varchar(20),
@cityid varchar(20),
@Ucategory_id varchar(20),
@ad_id varchar(20),
@title varchar(MAX),
@ad_description varchar(MAX),
@img_id int,
@username varchar(20),
@video varchar(MAX),
@subcategory_id varchar(50),
@date_creation datetime,
@postid int
)
AS
BEGIN
INSERT into postad(userid, cityid, Ucategory_id, ad_id, title, ad_description, img_id, ...) values
(@userid, @cityid, ......)
END
GO
In your c# code do something like this:
SqlConnection cn;
public int saveData(string userid, string cityId, ......)
{
cn = new SqlConnection(connectionString);
SqlCommand cmd = getCommand();
cmd.Parameters["@userid"].Value = userid;
cmd.Parameters["@cityId"].Value = cityId;
cmd.Parameters["@Ucategory_id"].Value = UCategory_id;
//and so on
try
{
cn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
throw e;
}
finally
{
cn.Close();
}
}
private SqlCommand getCategoryCommand()
{
cmd = new SqlCommand("PSetPostAd", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@userid", SqlDbType.VarChar, 20);
cmd.Parameters.Add("@cityId", SqlDbType.VarChar, 50);
cmd.Parameters.Add("Ucategory_id", SqlDbType.Varchar, 20);
//and so on
return cmd;
}
There are mainly two styles of using insert
Style 1: INSERT INTO PostAd(col1,col2,col3,col4...) VALUES (valforcol1,valforcol2,valforcol3..)
Style 2: INSERT INTO PostAd SELECT col1,col2,col3 FROM <someothertable>
Considering your table :
userid varchar(20)
cityid varchar(20)
Ucategory_id varchar(20)
ad_id varchar(20)
title varchar(MAX)
ad_description varchar(MAX)
img_id int username varchar(20)
video varchar(MAX)
subcategory_id varchar(50)
date_creation datetime
postid int
If you choose style1:
INSERT INTO PostAd (userid, cityid, Ucategory_id, ad_id,title,ad_description,img_id, username,video, subcategory_id,date_creation,postid)
VALUES (1,123,443,33,'My Ad','This is a great ad',123,'bradpitt','www.youtube.com/v=23e232',12,GETDATE(),1234)
Just make sure here that all the IDs e.g. userid, cityid, ucategory_id are valid ids and come from the master tables that you have created like category or adtype.
Style 2 is normally used when the data you want to insert in the current table has to come through a select query. The output of the select query is inserted as it is into the target table. One thing to make sure in using style 2 is that the output of the select query must contain exactly the same number of columns as the table in which you are trying to insert
精彩评论