我有一个名为canvaslocal的表,其中包含字段:canvasID,cnamebonds(char 100),cnamedebs(char 100),cnameshares(char 100)。我已将数据插入此表。参考表是 t_bondridapp:debID(ID),debissuedate(DATETIME),cancode(INT),canname(CHAR 45) t_debtrfapp:recNO(ID),debissuedate(DATETIME),cancode(INT),canname(CHAR 45) share_application:id(ID),debissuedate(DATETIME),cancode(INT),canname(CHAR 45)
我的表单中有一个下拉列表,它选择了名称和两个选择开始和结束日期的文本框。
我必须将t_bondridapp.canname添加到cnamebonds,将t_debtrfapp.canname添加到cnamedebs,将share_application.canname添加到cnameshares,其中canname必须等于dropdownlistvalue,日期必须介于to textboxes日期之间。 我使用过代码:
string name=Convert.ToString(DropDownList1.SelectedItem.Text);
DateTime fdate=DateTime.Parse(TextBox1.Text);
DateTime sdate=dateTime.Parse(TextBox2.Text);
var dbcon = DBConnection.Instance();
dbcon.DBName="pnys";
if(dbcon.IsConnect())
{
string q1=@"INSERT INTO canvaslocal (cnamebonds) SELECT t_bondridapp.canname FROM t_bondridapp WHERE (debissuedate >= @fdate AND debissuedate <= @sdate) AND canname =@name";
string q2=@"INSERT INTO canvaslocal (cnamedebs) SELECT t_debtrfapp.canname FROM t_debtrfapp WHERE (debissuedate >= @fdate AND debissuedate <= @sdate) AND canname =@name";
string q3=@"INSERT INTO canvaslocal (cnameshares) SELECT share_application.canname FROM share_application WHERE (debissuedate >= @fdate AND debissuedate <= @sdate) AND canname =@name";
using(var command = new MySqlCommand(q1,dbcon.Connection))
{
command.Parameters.Add("@name",MySqlDbType.String).Value =name;
command.Parameters.Add("@fdate",MySqldbType.DateTime).value =fdate;
command.Parameters.Add("@sdate",MySqldbType.DateTime).value =sdate;
command.ExecuteNonQuery();
}
using(var command = new MySqlCommand(q2,dbcon.Connection))
{
command.Parameters.Add("@name",MySqlDbType.String).Value =name;
command.Parameters.Add("@fdate",MySqldbType.DateTime).value =fdate;
command.Parameters.Add("@sdate",MySqldbType.DateTime).value =sdate;
command.ExecuteNonQuery();
}
using(var command = new MySqlCommand(q3,dbcon.Connection))
{
command.Parameters.Add("@name",MySqlDbType.String).Value =name;
command.Parameters.Add("@fdate",MySqldbType.DateTime).value =fdate;
command.Parameters.Add("@sdate",MySqldbType.DateTime).value =sdate;
command.ExecuteNonQuery();
}
}
是否有其他简单查询可以更有效地传递这些值?而且我还保留了字段cnamebonds,cnamedebs和cnameshares,因为它们可以保存NULL值。 请帮我。