我的数据库中有六个表;他们的架构如下:
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)用户详细信息
userpwd varchar(20)
emailid varchar(30)
mobile numeric(10, 0)
squestion varchar(MAX)
sanswer varchar(MAX)
gender varchar(20)
status_user varchar(20)
3)子类别
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)类别
cat_id varchar(20)
cat_name char(150)
我想在postad
表中插入一条记录。我该怎么做呢?任何帮助将不胜感激。
答案 0 :(得分:2)
通常,制定查询的一种方法是这样的:
INSERT INTO tablename (columnlist) VALUES (valuelist);
您将tablename
替换为您要插入的表的名称(在本例中为postad
)。此外,您将“columnlist
”替换为要插入值的列的名称(以逗号分隔),并将“valuelist
”替换为与这些列对应的值(同样由列分隔。)
例如,要为1
和2
插入userid
和cityid
的值,您需要执行以下操作:
INSERT INTO postad (userid, cityid) VALUES (1, 2);
答案 1 :(得分:0)
在sqlserver中创建过程为:
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
在你的c#代码中执行以下操作:
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;
}
答案 2 :(得分:0)
主要有两种使用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>
考虑你的表:
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
如果选择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)
只需在此确保所有ID,例如userid,cityid,ucategory_id是有效的ID,来自您创建的主表格,如类别或广告类型。
当您要在当前表中插入的数据必须通过选择查询时,通常使用样式2。 select查询的输出将原样插入目标表中。使用样式2时要确保的一件事是,select查询的输出必须包含与您尝试插入的表完全相同的列数