因为13.0之前使用的.net都是3.5 sqlsugar不支持所以在网上搜索找到了这个工具cyq.data 比直接使用sqlhelper要方便所以在此推荐一下
1.使用方法下载cyq 引用dll (已经开源地址如下:http://t.csdnimg.cn/AmPCP)
2.
3.使用方法关键点
public static void SetCyqConn(int CommandTimeout, string DefaultConn)
{
AppConfig.Cache.IsAutoCache = false; //设置不需要缓存 否则会存在后端sql直接执行删除修改数据后前端查询条件不变的情况下数据没有发生变化
AppConfig.DB.CommandTimeout = CommandTimeout;//数据库链接超时时间
AppConfig.DB.DefaultConn = DefaultConn;//数据库链接地址
AppConfig.DB.EditTimeFields = "ModifyTime";//修改表的时候自动更新这个字段,不存在该字段的表不会更新不会报错
}
使用方法如下:
using (MAction action = new MAction("表名"))
{
table = action.Select("1=2");
table_Delete = action.Select("1=2");
foreach (DataRow dr in mainTable.Rows)
{
if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Modified)
{
if (string.IsNullOrEmpty(dr["Did"] + ""))
{
row = table.NewRow();
row.Set("Id", model["id"]);
row.Set("cValue", dr["cValue"]);
table.Rows.Add(row);
}
else
{
row = table.NewRow();
row.Set("Did", dr["Did"]);
row.Set("cValue", dr["cValue"]);
table.Rows.Add(row);
}
}
if (dr.RowState == DataRowState.Deleted)
{
if (!string.IsNullOrEmpty(dr["Did", DataRowVersion.Original] + ""))
{
row = table_Delete.NewRow();
row.Set("Did", dr["Did", DataRowVersion.Original]);
table_Delete.Rows.Add(row);
}
}
}
if (table != null) table.AcceptChanges(AcceptOp.Auto);
if (table_Delete != null) table_Delete.AcceptChanges(AcceptOp.Delete);
dgvMain.DataSource = action.Select($@"id={model["id"]}").ToDataTable();
//action.Select().Bind(dgvMain);
}
示例2:
using (MAction action = new MAction("表名"))
{
DataTable result = action.Select(1, $@"id={_id} order by IndexNum desc").ToDataTable();
if (result.Rows.Count > 0)
{
_billDate = result.Rows[0]["EndTime"] + "";
_indexNum = int.Parse(result.Rows[0]["IndexNum"] + "");
}
action.Data.Set("Id", _id);
if (action.Insert())
{
long headid = action.Get<long>("Did");//取回插入后的主键ID
action.ResetTable("表名");
action.Set("id", _id);
action.Set("ProcessStatus", cbbProcessStatus.Text);
action.Update(_id);
if (action.Fill(_id))
{
_ProjectJournalNo = action.Data["ProjectJournalNo"].Value + "";
}
action.ResetTable("表名");
foreach (DataRow row in personTable.Rows)
{
action.Data.Set("Id", headid);
action.Data.Set("PersonCode", row["PersonCode"]);
action.Data.Set("PersonName", row["PersonName"]);
action.Insert();
}
}
示例3:带事务
using (MAction action = new MAction("表名"))
{
action.SetTransLevel(IsolationLevel.ReadCommitted);//可设置的事务级别,一般可以不用设置
action.BeginTransation();//设置开启事务标识
if (!action.Insert()) { action.RollBack(); return; }
}