放了这么久,怎么没人回答我,其实我觉得这个问题挺简单的

guess1975 2003-05-30 08:10:38
窗体上有TTable,TDataSourse 一个DBEdit 和二个Button控件,经过正常的连接后,DBEdit1显示“0003”。
我在Button1控件中写入这样一个代码“DBEdit1->Text=Edit1->Text; (Edit1默认值是0004),在Button2控件中写入Table1->Edit(); Table1->Post();”编译正常,可是为什么不能把0004提交数据库?从而改变原来的0003?

...全文
52 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vericky 2003-05-30
  • 打赏
  • 举报
回复
我试了一下, TR@SOE()说得对。
勉励前行 2003-05-30
  • 打赏
  • 举报
回复
用DBEdit1->Text來給字段賦值不可靠,應該直接給字段賦值。
DBEdit1->Text改變了,可是並不會馬上給字段賦值,直到ENTER或失去焦點後才給字段賦值,如果你在DBEdit1失去焦點前POST數據,字段的數值並沒有被改變。

如果你不願這樣,就別用TDBEdit吧。害得我現在POST前都移轉一下焦點。

用 TR@SOE() 的没错
loking 2003-05-30
  • 打赏
  • 举报
回复
用 TR@SOE() 的没错
阿鹏兄 2003-05-30
  • 打赏
  • 举报
回复
try{}
catch{}
TR@SOE 2003-05-30
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Table1->Edit();
DBEdit1->Text=DBEdit1->Text+Edit1->Text;
}

最好不要直接操作DBEdit的Text属性。应该这样:

DBEdit1->Field->AsInteger=StrToInt(Edit1->Text); // 如果DBEdit1对应的字段为整数类型

如果是其他类型,就用类似AsString, AsFloat, AsDateTime之类的。实在不行,还可以直接操作DBEdit1->Field->Value。

c2y 2003-05-30
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Table1->Edit();
DBEdit1->Text=DBEdit1->Text+Edit1->Text;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Table1->Post();
}

daidai0 2003-05-30
  • 打赏
  • 举报
回复
把Table1->Edit(); 写在DBEdit1->Text=Edit1->Text; 前面试试!
BCBChina 2003-05-30
  • 打赏
  • 举报
回复
代码贴出来看看

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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