1) 在启动 ODBCRouter 组件后,通过新建向导,新建数据源按钮或者直接在导航栏上的数
2) 如果力控数据库运行在本地,直接选择本地连接,进行下一步就可以了。
3) 如果力控数据库运行在远程,就要选用远程连接,填写远程数据库的 IP 地址。
如果把照片直接保存在SQL Server数据库中,微软推荐用varbinary(MAX)字段。下面的代码演示了用C# *** 作varbinary(MAX)字段的基本方法。
1、新增记录
private void btnBrowse_Click(object sender, EventArgs e)//浏览照片
{
OpenFileDialog dlg = new OpenFileDialog();
dlgFilter = "jpg(jpg文件)|jpg|gif|gif";
dlgFilterIndex = 1;
if (dlgShowDialog()==DialogResultOK)
{
textBox3Text = dlgFileName;
pictureBox1Image = ImageFromFile(dlgFileName);
}
}
//新增记录
using (SqlConnection conn = new SqlConnection(ConfigurationManagerConnectionStrings["db"]ConnectionString))
{
String sql = "insert into emp(name,age,photo) values(@name,@age,@photo)";
SqlCommand cmd = new SqlCommand(sql, conn);
cmdParametersAddWithValue("@name", textBox1Text);
cmdParametersAddWithValue("@age", ConvertToInt32(textBox2Text));
//byte[] b;
//using(FileStream fs=new FileStream(textBox3Text,FileModeOpen,FileAccessRead))
//{
// b = new byte[fsLength];
// fsRead(b, 0, (int)fsLength);
//}
byte[] b;
if (textBox3Text != "")
{
b = FileReadAllBytes(textBox3Text);
cmdParametersAddWithValue("@photo", b);
}
else
{
cmdParametersAddWithValue("@photo", SystemDataSqlTypesSqlBinaryNull);
}
connOpen();
try
{
cmdExecuteNonQuery();
}
catch (Exception ex)
{
MessageBoxShow(exMessage);
}
}
2、显示记录信息并提供修改功能
private void FormDetail_Load(object sender, EventArgs e)//显示记录详细信息
{
using (SqlConnection conn = new SqlConnection(ConfigurationManagerConnectionStrings["db"]ConnectionString))
{
String sql = "select from emp where id=@id";
SqlCommand cmd = new SqlCommand(sql, conn);
cmdParametersAddWithValue("@id", id);
connOpen();
using (SqlDataReader dr = cmdExecuteReader())
{
if(drRead())
{
textBox1Text = dr[1]ToString();
textBox2Text = dr[2]ToString();
if (!drIsDBNull(3))//防止照片字段为空
{
SystemDataSqlTypesSqlBytes bytes = drGetSqlBytes(3);
pictureBox1Image=ImageFromStream(bytesStream);//显示照片
}
}
}
}
}
private void btnSave_Click(object sender, EventArgs e)//更新记录
{
using (SqlConnection conn = new SqlConnection(ConfigurationManagerConnectionStrings["db"]ConnectionString))
{
byte[] b;
if (textBox3Text != "")//需要更新照片
{
String sql = "update emp set name=@name,age=@age,photo=@photo where id=@id";
SqlCommand cmd = new SqlCommand(sql, conn);
cmdParametersAddWithValue("@name", textBox1Text);
cmdParametersAddWithValue("@age", ConvertToInt32(textBox2Text));
cmdParametersAddWithValue("@id", id);
b = FileReadAllBytes(textBox3Text);
cmdParametersAddWithValue("@photo", b);
connOpen();
try
{
cmdExecuteNonQuery();
}
catch (Exception ex)
{
MessageBoxShow(exMessage);
}
}
else//不需要更新照片
{
String sql = "update emp set name=@name,age=@age where id=@id";
SqlCommand cmd = new SqlCommand(sql, conn);
cmdParametersAddWithValue("@name", textBox1Text);
cmdParametersAddWithValue("@age", ConvertToInt32(textBox2Text));
cmdParametersAddWithValue("@id", id);
connOpen();
try
{
cmdExecuteNonQuery();
}
catch (Exception ex)
{
MessageBoxShow(exMessage);
}
}
}
}
那力控发布成功了吗?如果力控发布成功了,只有sql没有成功的话,你先将浏览器的历史记录都清除了,在将力控工程目录下的webroot(以前发布的内容)文件夹中的内容都删除了,然后重新发布,运行后,用telnet+空格+外网IP地址+空格+1433(1433是sql的端口)看看,端口有没有通,如果没有通,说明1433这个端口你没有打开。
publicDataSetquery(stringsql)
{
DataSetds=newDataSet();//DataSet是表的集合
da=new(sql,conn);//从数据库中查询
daFill(ds);//将数据填充到DataSet
connClose();//关闭连接
returnds;//返回结果
}
这就读出来了
力控组态软件数据库管理器 DbManager在力控组态软件开发系统的Draw导航器中的工程项目中双击数据库组态便启动数据库管理器DbManager
启动力控组态软件数据库管理器DbManager的位置。
力控组态软件数据库管理器DbManager启动后,进入力控组态软件数据库管理DbManager的主窗口如下图所示,可看到主窗口分为菜单栏、工具栏、导航器、点表四部分。
力控组态软件数据库管理器DbManager的主窗口
导航器与点表
导航器是显示数据库点结构的窗口,它采用树形节点结构,数据库是根节点,其下可建多个节点,每个节点下又可建多个子节点,在每个节点下可建立多个不同类型的点。
数据库点表是一个二维表格,一行代表一个点,列显示各个点的信息,点信息包括点的参数值、数据连接、历史保存等信息。在点表上,点表支持鼠标双击 *** 作,也可以用箭头键、“Tab”键、“Page UP”键、“PageDown”键、“Home”、“End”键来定位当前选中节点下的点。
点表内显示的内容取决于导航器当前选择的节点或点类型。例如:如果在导航器上选择根节点“数据库”,则点表会自动显示根节点下所有类型点的信息,如果在导航器上选择某节点下的模拟 I/O 点,则点表会自动显示该节点下所有模拟 I/O 点的信息。
以上就是关于怎样将力控组态软件中的数据存储到关系数据库全部的内容,包括:怎样将力控组态软件中的数据存储到关系数据库、如何读取SQL server数据库中varbinary字段内容、你好 我现在的sql已经安装SP4,并在路由器映射了端口,为什么在力控web发布界面里还是看不到sql的数据呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)