请问大家是如何写sql语句的

fonvey 2008-12-15 03:18:14
如果你提效30个字段到数据库表里,,,请问大家里如何做的,,,

如果是sql语句来插入数据,,那会写的头晕,,眼花,,,
而且写错一个字符也不好找,,也不好维护,,,
insert into carorigin(car_c_number,carorigin_responsiblename,bproid,bcityid,bareaid,carorigin_startplace,tproid,tcityid,tareaid,carorigin_goalplace,car_user_name,carorigin_responsibletelephone,carorigin_heavy_validity,goodspay,car_payment,carorigin_goods_h,carorigin_weight_price,carorigin_softprice,carorigin_msg_validity) values('" + car_c_number.Text + "','" + carorigin_responsiblename.Text + "','" + ddl1.Text + "','" + Request.Form["ddl2"].ToString() + "','" + Request.Form["ddl3"].ToString() + "','" + carorigin_startplace.Text + "','" + ddl4.Text + "','" + Request.Form["ddl5"].ToString() + "','" + Request.Form["ddl6"].ToString() + "','" + carorigin_goalplace.Text + "','" + standard_tbx.Text + "','" + car_need_tbx.Text + "','" + get_send_dr.SelectedValue + "','" + price_tbx.Text + "','" + pay_type_tbx.Text + "','" + need_type_tbx.Text + "','" + contact_type_tbx.Text + "','" + expiry_tbx.Text + "',getdate(),'Show','正常')"


还没有asp来的好,,,
...全文
419 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰水冰 2008-12-24
  • 打赏
  • 举报
回复
学习了 不错
phoebuswei 2008-12-17
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 fonvey 的回复:]
phoebuswei 谢谢
[/Quote]
简单

public static int TableInsert()
{
HashTable d = new HashTable();
d.Add("kye","Value");
return this.funInsert(d,"表明");//上面的方法
//用HashTable是因为他好用写法简单开发容易快捷,你用其他的也行,当然你也可以重载一个对象进来坐orm
}
fonvey 2008-12-17
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 qq196260188 的回复:]
用sqldataadapter来更新和添加数据吧,,,这个会像asp一样更新和添加数据的
更新:

C# codeprivate void update()

{

string link = configurationsettings.appsettings["link_local"].tostring();

sqlconnection conn = new sqlconnection(link);



sqldataadapter da = new sqldataadapter("select order_id, contract from linhai", conn);

dataset ds = new dataset();

da.fill(ds, "linhai"); …
[/Quote]

谢谢啦,,,你的方法不错,,,也不会注入吧
bhtfg538 2008-12-17
  • 打赏
  • 举报
回复
用 SMSS 自动生成啊
还有 如果 你INSERT
不要全部写啊
INSERT INTO TABLE VALUES()
就好了
而且你的 SQL 全部没有添加N''
参数化
不然被注入
整死你
xuezj508 2008-12-17
  • 打赏
  • 举报
回复
代码生成器
petersteven 2008-12-17
  • 打赏
  • 举报
回复
你去找Nhibernate吧~跟LINQ差不多的用法,可以不用写语句了,直接实现。
其实就是.net框架的2次开发。
当然,你也可以自己动态的在内存中抓一个自定义的实体类对象做反射,然后拼一个SQL语句,我经常这么干,很方便,忽略表的数量和字段的数量。
fonvey 2008-12-16
  • 打赏
  • 举报
回复
phoebuswei 谢谢
fonvey 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 phoebuswei 的回复:]
C# code
/// <summary>
/// 执行插入操作
/// </summary>
/// <param name="dict">实现IDictionary接口的,比如HashTable,用来表名要插入的字段及要插入的值</param>
/// <param name="strTableName">要插入的表名</param>
/// <returns>执行插入操作影响的行数</returns>
public static int funInsert(IDictionary dict,string strTableName)
{
i…
[/Quote]

这位大哥,,,你可用你这个代码,,写个简单的例子来看吗
zjybushiren88888 2008-12-16
  • 打赏
  • 举报
回复
http://www.maticsoft.com/Download.aspx
up
kingcsx666 2008-12-16
  • 打赏
  • 举报
回复
12楼的参数化拼接
zhnzzy 2008-12-16
  • 打赏
  • 举报
回复
有个什么动软代码生成器的记得,你可以去找找
webdiyer 2008-12-16
  • 打赏
  • 举报
回复
该是学习LINQ的时候了
ljsheng 2008-12-16
  • 打赏
  • 举报
回复

偶现在都自己拼
叶子 2008-12-16
  • 打赏
  • 举报
回复
参数化自动生成!
phoebuswei 2008-12-16
  • 打赏
  • 举报
回复
就是拼接sql吧你要添加的字段和值写上就行了
现写的应该好用,不好用找我
phoebuswei 2008-12-16
  • 打赏
  • 举报
回复

/// <summary>
/// 执行插入操作
/// </summary>
/// <param name="dict">实现IDictionary接口的,比如HashTable,用来表名要插入的字段及要插入的值</param>
/// <param name="strTableName">要插入的表名</param>
/// <returns>执行插入操作影响的行数</returns>
public static int funInsert(IDictionary dict,string strTableName)
{
if(dict==null||dict.Keys.Count==0) return 0;
if (strTableName==null || strTableName.Trim()=="") return 0;

int rows=0;
int num=dict.Count;
string[] Key=new string[num];
string[] Value=new string[num];
string strSql=@"insert into "+strTableName;
string strKeys="";
string strValues="";
int i=0;


foreach(DictionaryEntry entry in dict)
{
Key[i]=entry.Key.ToString();
Value[i]=entry.Value.ToString();
strKeys+=Key[i].Trim()+",";
strValues+="@"+Key[i].Trim()+",";
i++;
}
if(strKeys.Length>1)
{
strKeys=strKeys.Substring(0,strKeys.Length-1);
}
if(strValues.Length>1)
{
strValues=strValues.Substring(0,strValues.Length-1);
}
if(strKeys.Length<=0 || strValues.Length<=0) return 0;
strSql+="("+strKeys+")"+" values ("+strValues+");";



SqlParameter[] param = new SqlParameter[num];
for(int j=0;j<num;j++)
{
param[j]=new SqlParameter("@"+Key[j],Value[j]);

}



using(SqlConnection conn=new SqlConnection(DB_Access.clsConfigOperate.CustomerSqlConnection()))
{
conn.Open();
rows=DB_Access.SqlHelper.ExecuteNonQuery(conn,CommandType.Text,strSql,param);
conn.Close();
}
return rows;
skylineeeeee 2008-12-16
  • 打赏
  • 举报
回复
代码生成器我也没用过。参数化自动生成!也不懂.只会用SqlParameter...- =!
吕津 2008-12-15
  • 打赏
  • 举报
回复
能给个例子吗,大侠?
kamiff 2008-12-15
  • 打赏
  • 举报
回复
直接用ORM工具连SQL都不会写,强烈推荐用NHibernate
MAOGE1987 2008-12-15
  • 打赏
  • 举报
回复
parameter~~~这东西好
加载更多回复(33)

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧