ADO.NET中如何使用AddWithValue方法给用户自定义类型的参数赋值?

我在sql数据库中注册了程序集并创建了别名为Vector3的自定义的类型,在类库文件中类型名是SqlVector3。已经能够在表和存储结构中使用这个自定义类型。

但我在C#代码中使用AddWithValue方法给一个存储过程的Vector3类型的参数赋值时,却出现了“ArgumentException: The parameter data type of Assets.MyScripts.SqlVector3 is invalid.
System.Data.SqlClient.SqlParameter.InferSqlType (System.Object value)”的错误。

我的代码如下:

 public static void NewSkeletonsData(int userID, int actionID, int groupID, long timeNum, Dictionary<string, Vector3> SkeletonsData)
        {
            SqlCommand cmd = new SqlCommand("NewSkeletonsData", Connection);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@ActionID", actionID);
            cmd.Parameters.AddWithValue("@UserID", userID);
            cmd.Parameters.AddWithValue("@GroupID", groupID);
            cmd.Parameters.AddWithValue("@TimeNum", timeNum);

            foreach (var element in SkeletonsData)
            {
                cmd.Parameters.AddWithValue("@" + element.Key, new SqlVector3(element.Value.x, element.Value.y, element.Value.z));
            }

            cmd.ExecuteNonQuery();
        }

错误出在foreach内部的AddWithValue中。
请问要如何在C#代码中为自定义类型的参数赋值呢?
(因为是在Unity脚本的一部分,上述代码中的Vector3是Unity封装的Vector3,与自定义的类型Vector3不是同一个类型)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SQL 中for xml auto 与ADO.Net的疑问
我先说下第一种情况, string sql ="select * from users for xml auto " SqlDataAdapter sda = new SqlDataAdapter(sql,conn); conn.Open(); sda.SelectCommand.CommandType = CommandType.Text; sda.SelectCommand.Parameters.AddWithValue("@maxdtm", maxdtm); DataSet ds = new DataSet(); sda.Fill(ds); 填充后可以得到一张 xml的数据 现在有个需求是想从 存储过程中得到这张结果,因为这个结果本身只是一个xml链接,存在内存中,想问下这种情况下通过ado.net 怎么取得!
c#中使用cmd.Parameters.AddWithValue存入数据库
``` DBHelper D = new DBHelper(); MySqlConnection M = D.getconn(); M.Open(); MySqlCommand cmd = new MySqlCommand("insert into test1(name,department,specification,amount,packing,declarationInspectionDate,assayDate,reportDate,commodityBatchNumber,inspectionbasis,conclusion,assessor,analyst,laboratoryTechnician) values(@name,@department,@specification,@amount,@packing,@declarationInspectionDate,@assayDate,@reportDate,@commodityBatchNumber,@inspectionbasis,@conclusion,@assessor,@analyst,@laboratoryTechnician)",M); cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@name", this.textBox1.Text.Trim()); cmd.Parameters.AddWithValue("@department", this.textBox2.Text.Trim()); cmd.Parameters.AddWithValue("@specification", this.textBox3.Text.Trim()); cmd.Parameters.AddWithValue("@amount", float.Parse(this.textBox4.Text.Trim().ToString())); cmd.Parameters.AddWithValue("@packing", this.textBox5.Text.Trim()); cmd.Parameters.AddWithValue("@declarationInspectionDate", this.dateTimePicker1.Text.Trim()); cmd.Parameters.AddWithValue("@assayDate", this.dateTimePicker2.Text.Trim()); cmd.Parameters.AddWithValue("@reportDate", this.dateTimePicker3.Text.Trim()); cmd.Parameters.AddWithValue("@commodityBatchNumber", this.textBox8.Text.Trim()); cmd.Parameters.AddWithValue("@inspectionbasis", this.textBox10.Text.Trim()); cmd.Parameters.AddWithValue("@conclusion", this.textBox11.Text.Trim()); cmd.Parameters.AddWithValue("@assessor", this.textBox14.Text.Trim()); cmd.Parameters.AddWithValue("@analyst", this.textBox13.Text.Trim()); cmd.Parameters.AddWithValue("@laboratoryTechnician", this.textBox12.Text.Trim()); int j = cmd.ExecuteNonQuery(); ``` 用以上代码,我为什么不能实现对数据库的操作?显示插入成功,但是数据库中相应字段全都是空的,也就是说,cmd.Parameters.AddWithValue("@laboratoryTechnician", this.textBox12.Text.Trim());中没有给相应的参数赋值,一个也没有,很难受,我不知道怎么改才行。
vb.net 怎么在对数据库操作的函数中,添加根据需求变化的有关数据库操作的函数?
vb.net 怎么在函数中加入需要声明SqlCommand() 的函数 Imports System.Data.SqlClient Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click Dim objCommand As SqlCommand = New SqlCommand() objCommand.Connection = objConnection objCommand.Parameters.AddWithValue("@用户名", txt用户名.Text) objCommand.Parameters.AddWithValue("@项目编号", txt项目编号.Text) '以下是需要替代的代码 objCommand.Parameters.AddWithValue("@设备类型1", “1”) objCommand.Parameters.AddWithValue("@设备类型2", “1”) '------------------------ objCommand.CommandText = "Update 项目报备更新提醒 Set 用户名=@用户名,设备类型1=@设备类型1,设备类型2=@设备类型2 where 项目编号=@项目编号;" If objConnection.State = ConnectionState.Open Then Else objConnection.Open() End If objCommand.ExecuteNonQuery() objConnection.Close() End Sub ——————————————————— objCommand.Parameters.AddWithValue("@设备类型1",“1”) objCommand.Parameters.AddWithValue("@设备类型2", “1”) 这部分代码是几个函数共用的,且可能随着需求点变化,增加或减少,例如变为 objCommand.Parameters.AddWithValue("@设备类型1", “1”) objCommand.Parameters.AddWithValue("@设备类型2", “1”) objCommand.Parameters.AddWithValue("@设备类型3", “1”) objCommand.Parameters.AddWithValue("@设备类型4", “1”) 有什么办法可以做到这点? ………… 尝试了在函数中添加 testit() ,不起作用 Private Sub testit() Dim objCommand As New SqlCommand() objCommand.Parameters.AddWithValue("@设备类型1", “1”) objCommand.Parameters.AddWithValue("@设备类型2", “1”) objCommand.Parameters.AddWithValue("@设备类型3", “1”) objCommand.Parameters.AddWithValue("@设备类型4", “1”) End Sub
vb.net修改sql数据库老是出现未初始化大神帮看下
![图片说明](https://img-ask.csdn.net/upload/201605/05/1462409767_213644.png) If TextBox1.Text = "" Then MsgBox("课程信息不能为空!") Exit Sub End If Dim myConn As OleDbConnection = New OleDbConnection(strConn) Dim myComm As OleDbCommand = New OleDbCommand myComm.Connection = myConn myComm.CommandText = "update Course_Info set 课程编号=@课程编号,课程名称=@课程名称,课程分类=@课程分类,培训时间=@培训时间,操作分类=@操作分类,天气类型=@天气类型,线路名称=@线路名称,教员号=@教员号,起点站=@起点站,终点站=@终点站 where 课程编码=" &TextBox1.Text & "'" myComm.Parameters.AddWithValue("@课程编号", TextBox1.Text) myComm.Parameters.AddWithValue("@课程名称", TextBox2.Text) myComm.Parameters.AddWithValue("@课程分类", ComboBox1.Text) myComm.Parameters.AddWithValue("@培训时间", TextBox3.Text) myComm.Parameters.AddWithValue("@操作分类", ComboBox2.Text) myComm.Parameters.AddWithValue("@天气类型", ComboBox3.Text) myComm.Parameters.AddWithValue("@线路名称", ComboBox4.Text) myComm.Parameters.AddWithValue("@教员号", ComboBox5.Text) myComm.Parameters.AddWithValue("@起点站", ComboBox6.Text) myComm.Parameters.AddWithValue("@终点站", ComboBox7.Text) myConn.Open() myComm.ExecuteNonQuery() myConn.Close() MsgBox("修改成功") End Sub
asp.net的问题 大神帮我看看
``` “/aspppppppppp”应用程序中的服务器错误。 ________________________________________ GridView“GridView1”激发了未处理的事件“RowDeleting”。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: GridView“GridView1”激发了未处理的事件“RowDeleting”。 源错误: 执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪: [HttpException (0x80004005): GridView“GridView1”激发了未处理的事件“RowDeleting”。] System.Web.UI.WebControls.GridView.OnRowDeleting(GridViewDeleteEventArgs e) +2373419 System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +621 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +1183 System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +201 System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +15 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +9654230 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639 ________________________________________ 版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.6.1055.0 ![图片说明](https://img-ask.csdn.net/upload/201611/06/1478415854_458714.jpg) <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage2.master" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script runat="server"> string strCon = "Data Source=localhost;DataBase=information.mdb"; OleDbConnection conn; OleDbCommand cmd; //conn = new OleDbConnection(strCon); protected void Page_Load(object sender, EventArgs e) { if (!(Page.IsPostBack)) { string strSql = "select 姓?名? from [info]"; OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_data/information.mdb")); OleDbDataAdapter da1 = new OleDbDataAdapter(strSql, conn); DataSet ds1 = new DataSet(); da1.Fill(ds1, "info1"); DropDownList1.DataSource = ds1.Tables["info1"]; DropDownList1.DataTextField = "姓?名?"; DropDownList1.DataBind(); } } protected void Button1_Click(object sender, EventArgs e) { OleDbConnection conn2 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_data/information.mdb")); string str2 = "select 姓?名?,身¦¨ª份¤Y证¡è,房¤?间?号?,押o金e,房¤?费¤? from [info] where 姓?名?=@姓?名?"; OleDbCommand cmd = new OleDbCommand(str2, conn2); cmd.Parameters.AddWithValue("@姓?名?", DropDownList1.SelectedItem.Text); OleDbDataAdapter da2 = new OleDbDataAdapter(cmd); DataSet ds2 = new DataSet(); da2.Fill(ds2, "info"); GridView1.DataSource = ds2.Tables["info"].DefaultView; GridView1.DataBind(); } </script> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" runat="server" contentplaceholderid="ContentPlaceHolder1"> <asp:Label ID="Label1" runat="server" Text="退ª?房¤?人¨?姓?名?:êo"></asp:Label> <asp:DropDownList ID="DropDownList1" runat="server" Height="20px" Width="92px"> </asp:DropDownList> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="查¨¦询¡¥" /> <asp:GridView ID="GridView1" runat="server" Height="82px" Width="586px" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Vertical" > <AlternatingRowStyle BackColor="#DCDCDC" /> <Columns> <asp:CommandField ShowCancelButton="False" ShowDeleteButton="True" /> </Columns> <FooterStyle BackColor="#CCCCCC" ForeColor="Black" /> <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> <RowStyle BackColor="#EEEEEE" ForeColor="Black" /> <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#F1F1F1" /> <SortedAscendingHeaderStyle BackColor="#0000A9" /> <SortedDescendingCellStyle BackColor="#CAC9C9" /> <SortedDescendingHeaderStyle BackColor="#000065" /> </asp:GridView> <asp:AccessDataSource ID="AccessDataSource1" runat="server"> </asp:AccessDataSource> </asp:Content> ```
从字符串转换日期和/或时间时,转换失败
``` string sqlstr2 = @"UPDATE CardLog SET Date=@Date,Time=@Time"; using (SqlConnection cn = new SqlConnection(DBAssist.ConnectionString)) { SqlCommand cmd = cn.CreateCommand(); cmd.CommandText = sqlstr2; cmd.Parameters.AddWithValue("@Date",DateTime.Now.ToLongDateString()); cmd.Parameters.AddWithValue("@Time",DateTime.Now.ToShortTimeString()); cn.Open(); cmd.ExecuteNonQuery(); } ``` 然后就报错了,错误如题
在VS207中SQL server 连接 报错40 ,请求大神帮助
在VS2017连接SQLserver数据库后运行的报错,远程连接已设置,数据库实例确定没有问题 报错显示如下: System.Data.SqlClient.SqlException:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)” 报错程序段: public partial class Form1 : Form { public static string thisConnectString = @"Data Source=.; Database = 仓储管理系统数据库; Integrated Security=true"; public Form1() { InitializeComponent(); } //登陆 private void button2_Click(object sender, EventArgs e) { SqlConnection thisConnect = new SqlConnection(thisConnectString); SqlCommand cmd = new SqlCommand("login_proc", thisConnect); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@user", textBox1.Text); cmd.Parameters.AddWithValue("@pws", textBox2.Text); SqlParameter par = cmd.Parameters.Add("@status", SqlDbType.Int);  //定义输出参数 par.Direction = ParameterDirection.Output;  //参数类型为Output thisConnect.Open(); cmd.ExecuteNonQuery(); 报错是thisConnect.Open();这一句 尝试过网上说的把 Integrated Security=true改成User ID= ;pwd= ; 但是问题没有解决
vs2010连接暑数据库问题
代码如下,问题在代码后 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.Common; using System.Configuration; namespace sqlconnection { public partial class Form1 : Form { SqlConnection con = new SqlConnection("server=.\\sqlexpress;integrated security=true;database=master;"); SqlCommand cmd; SqlDataReader sqldr; public Form1() { InitializeComponent(); con.Open(); } private void button1_Click(object sender, EventArgs e) { try { cmd = new SqlCommand("SELECT*FROM [table1]", con); sqldr = cmd.ExecuteReader(); label1.Text = ""; while (sqldr.Read()) { label1.Text = label1.Text + String.Format("{0}{1}{2}", sqldr[0], sqldr[1],sqldr[2]); } } catch (Exception ex) { label1.Text = ex.Message; } } private void button2_Click(object sender, EventArgs e) { SqlCommand cmd_add = new SqlCommand("",con); cmd_add.CommandText = "insret into [table1](序号,名称,型号,原价,售价) values(@序号,@名称,@型号,@原价,@售价)"; cmd_add.Parameters.AddWithValue("@序号", "3"); cmd_add.Parameters.AddWithValue("@名称", "pc主机"); cmd_add.Parameters.AddWithValue("@型号", "del9898"); cmd_add.Parameters.AddWithValue("@原价", "3300"); cmd_add.Parameters.AddWithValue("@售价", "3500"); int ret = cmd_add.ExecuteNonQuery(); label2.Text = "add successfull"; } } } 这是两个按钮和两个label,button1能把我数据库table1中的信息查出来,但是button2按了就是显示说into附近有语法错误
帮忙检查一下哪有问题
using System; using System.Data; using System.Data.SqlClient; using System.IO; using System.Text; using System.Web; using System.Web.Configuration; /// <summary> /// DataClass 的摘要说明 /// </summary> public class DataClass { private SqlConnection GetSqlServerConn() { SqlConnection sqlConn; //定义SQL Server连接对象 string strConn = WebConfigurationManager.ConnectionStrings["ch21DataBase"].ConnectionString; //读取Web.config配置文件的ConnectionString节点获取连接字符串 sqlConn = new SqlConnection(strConn); //生成数据连接对象 sqlConn.Open(); //打开数据库连接 return sqlConn; //返回数据库连接对象以供调用 } private void CloseSqlServerConn(SqlConnection sqlConn) { if(sqlConn.State==ConnectionState.Open) //如果数据库连接处于关闭状态,则打开此连接 { sqlConn.Close(); } } public bool SaveFilesInfo(HttpFileCollection fileColl) { SqlConnection sqlConn; SqlCommand sqlComm; string strComm = @"insert into tabUploadFile(NewFileName,OldFileName,SaveAddress,UploadTime,TypeName) value(@NewFileName,@OldFileName,@SaveAddress,@UploadTime,@TypeName)"; sqlConn = GetSqlServerConn(); //调用方法获取数据库连接 SqlTransaction sqlTran = sqlConn.BeginTransaction(); //开始数据库事务 StringBuilder sbFileName; try { sqlComm = new SqlCommand(strComm, sqlConn); sqlComm.Transaction = sqlTran; //指定命令要使用的事务 for(int i=0;i<fileColl.Count;i++) //循环保存上传信息 { if(!String.IsNullOrEmpty(fileColl[i].FileName)) { sbFileName = new StringBuilder(); //使用年月日时分秒毫秒生成文件名 sbFileName.Append(DateTime.Now.Year); sbFileName.Append(DateTime.Now.Month); sbFileName.Append(DateTime.Now.Day); sbFileName.Append(DateTime.Now.Hour); sbFileName.Append(DateTime.Now.Minute); sbFileName.Append(DateTime.Now.Second); sbFileName.Append(DateTime.Now.Millisecond); sbFileName.Append(Path.GetExtension(fileColl[i].FileName)); sqlComm.Parameters.Clear(); //清空以前参数,指定当前SQL命令参数 sqlComm.Parameters.AddWithValue("@NewFileName", sbFileName.ToString()); sqlComm.Parameters.AddWithValue("@OldFileName", Path.GetFileName(fileColl[i].FileName)); sqlComm.Parameters.AddWithValue("@SaveAddress", System.Web.HttpContext.Current.Server.MapPath("~/Upload/")); sqlComm.Parameters.AddWithValue("@UploadTime", DateTime.Now); sqlComm.Parameters.AddWithValue("@TypeName", Path.GetExtension(fileColl[i].FileName)); sqlComm.ExecuteNonQuery(); //执行SQL命令 fileColl[i].SaveAs(System.Web.HttpContext.Current.Server.MapPath("~/Upload/") + sbFileName.ToString()); //保存对应的文件到服务器 } } sqlTran.Commit(); //提交事务保存数据 return true; } catch(Exception ex) { sqlTran.Rollback(); //发生异常回滚事务 CloseSqlServerConn(sqlConn); //关闭数据连接 return false; } } public DataTable GetFilesInfo() { SqlConnection sqlConn; SqlDataAdapter sqlAdpt; DataTable dtFilesInfo; string strComm = "select NewFileName,OldFileName,SaveAddress,UploadTime,TypeName from tabUploadFile"; try { sqlConn = GetSqlServerConn(); sqlAdpt = new SqlDataAdapter(strComm, sqlConn); //使用数据适配器读取数据 dtFilesInfo = new DataTable(); sqlAdpt.Fill(dtFilesInfo); //填充数据到DataTable return dtFilesInfo; } catch(Exception ex) { throw ex; } } public DataClass() { // // TODO: 在此处添加构造函数逻辑 // }
大神,看看那出错了,说user有语法错误
private void button1_Click(object sender, EventArgs e) { SqlConnection con = null; try { con = new SqlConnection( "Data Source=llll-PC;Initial Catalog=yonghu;User ID=sa;Password=123"); string sql = "select * from Table_1 where Table_1.user=@name and Table_1.pwd=@pwd"; SqlCommand cmd = new SqlCommand(sql, con); cmd.Parameters.AddWithValue("@name", textBox1.Text); cmd.Parameters.AddWithValue("@pwd", textBox2.Text); con.Open(); cmd.Connection = con; SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); if (textBox1.Text=="llll"&&textBox2.Text=="123") { MessageBox.Show("成功!"); Form3 f3 = new Form3(); f3.Show(); } else { MessageBox.Show("失败!"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { con.Close(); } }
c# richtext存入文字+图片至数据库,读取时报文件格式无效错误
``` //将richtext中文字+图片存入数据库 this.rtbText.SaveFile(mstream, RichTextBoxStreamType.RichText); mstream.Position = 0; SqlCommand cmd = new SqlCommand(); System.Data.SqlClient.SqlParameter[] pram = new System.Data.SqlClient.SqlParameter[] { }; cmd.Parameters.AddWithValue("@project_content",mstream.ToArray()); string sql = "insert into project values('" + cbbHospotal.Text + "','" + cbbType.Text + "','@project_content','未确认','待开发','','" + AllStatic.userName + "',getdate(),'','" + label2.Text + "')"; int i = sl.ExecuteNonQuery(sql,pram,CommandType.Text); //从数据库读取至richtext byte[] bWrite = (byte[])(dt.Rows[0]["project_content"]); if (bWrite != null) { using ( MemoryStream mstream = new MemoryStream()) { mstream.Write(bWrite, 0, bWrite.Length); mstream.Position = 0; //将stream填充到RichTextBox this.richTextBox1.LoadFile(mstream, RichTextBoxStreamType.RichText); } } ``` 报错,文件格式无效
executereader 要求已打开并可用的connection
private void button1_Click(object sender, EventArgs e) { SqlHelper.con.Open(); //这个是自己写的类 //里面就两句话 ( public static string connstring = "Data Source=.;Initial Catalog=students;Persist Security Info=True;User ID=sa;Password=Rootroot123"; public static SqlConnection con = new SqlConnection(connstring); ) string sql = "select * from student where sname = @sname"; SqlCommand cmd = new SqlCommand(sql, SqlHelper.con); cmd.Parameters.AddWithValue("@sname", comboBox1.Text); SqlDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { sid.Text = reader[0].ToString(); name.Text = reader[1].ToString(); sex.Text = reader[2].ToString(); sclass.Text = reader[3].ToString(); score.Text = reader[4].ToString(); } } 只能点击按钮一次 不知道为什么
C# SqldataAdapter 更新一张表的数据,增加另一张表的数据要怎么做
``` SqlConnection sqlConnection = new SqlConnection(); sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["Sql"].ToString(); SqlCommand insqlCommand = new SqlCommand(); insqlCommand.Connection = sqlConnection; insqlCommand.CommandText = "insert tb_门店配货信息 (ph,ypbh,ypsl,mdbh,rq) " + " values (@ph,@ypbh,@ypsl,@mdbh,@rq)"; insqlCommand.Parameters.AddWithValue("@ph", textBox_ph.Text); insqlCommand.Parameters.Add("@ypbh", SqlDbType.VarChar, 0, "ypbh"); insqlCommand.Parameters.Add("@ypsl", SqlDbType.VarChar, 0, "数量"); insqlCommand.Parameters.AddWithValue("@mdbh", cmb_md.SelectedValue); insqlCommand.Parameters.AddWithValue("@rq", DateTime.Now.ToLocalTime()); SqlCommand upsqlCommand = new SqlCommand(); upsqlCommand.Connection = sqlConnection; upsqlCommand.CommandText = "UPDATE tb_药品库存表 " + " set ypsl=@ypsl " + "where ypbh=@ypbh ;"; upsqlCommand.Parameters.AddRange(new SqlParameter[] { new SqlParameter ("@ypbh", SqlDbType.VarChar, 0, "ypbh") ,new SqlParameter ("@ypsl", SqlDbType.VarChar, 0, "剩余数量") }); SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); sqlDataAdapter.UpdateCommand = upsqlCommand; sqlDataAdapter.InsertCommand = insqlCommand; sqlDataAdapter.Update(this.SDrug ); ``` 代码如上,运行结果只能插入数据,更新操作无法完成,想问一下要怎么实现更新操作
数据库连接时下面代码可行吗?还缺什么?其中mytable代表什么
public void NewData(String GroupNameSet) { String sql = "insert into mytable(GroupNameSet) values(@GroupNameSet)"; OleDbConnection cn = new OleDbConnection(_ConnectionString); OleDbCommand cmd = new OleDbCommand(sql, cn); cmd.Parameters.AddWithValue("@GroupNameSet", GroupNameSet); if (cn.State != ConnectionState.Open) cn.Open(); try { cmd.ExecuteNonQuery(); } catch (Exception err) { throw err; } finally { if (cn.State != ConnectionState.Closed) cn.Close(); } }
用web api下载服务器图片时传输的byte[]数组变化了。我的目的是接收到正确的byte[]
**用web api下载服务器图片时传输的byte[]数组变化了。(上面从sql出来的byte[]是正确的,下面的接收到的byte[]就有问题了)传输用的是json,下面的是发送的代码和接受的代码,求各位大神解答,自己觉得是发送的方式有问题。数据流是SQl中的image类型** [HttpGet] public byte[] GoodsPhoto(Int32 goodsid) { try { //DataTable goodsTable = new DataTable(); //byte[] a = new byte[10]; using (SqlConnection cn = new SqlConnection(DBHelper.Instance.ConnectionString)) { String sql = "select photo from Bill_GoodsPhoto where goodsid=6"; SqlCommand cmd = new SqlCommand(sql, cn); cmd.Parameters.AddWithValue("goodsid", goodsid); cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { FileStream fs = new FileStream(@"f:\1.jpg", FileMode.Create, FileAccess.Write); byte[] bytes = (byte[])dr["Photo"]; //MemoryStream ms = new MemoryStream(a, 0, a.Length); //Image returnImage = Image.FromStream(ms); //returnImage.Save(@"f:\1.jpg"); return bytes; } //goodsTable.Load(dr); //return new Result<DataTable>(goodsTable); return null; } } catch (Exception ex) { return null; } } [HttpGet] public byte[] GoodsPhoto11(Int32 goodsid) { try { String URL = "http://192.168.1.106:6971/API/Epoch/GoodsPhoto?goodsid=6"; WebClient wc = new WebClient(); byte[] ab = wc.DownloadData(URL); MemoryStream ms = new MemoryStream(ab, 0, ab.Length); Image returnImage = Image.FromStream(ms); returnImage.Save(@"f:\1.jpg"); return ab; } catch (Exception ex) { return null; }
c#连接数据库删除数据
贴上代码。问题是能执行,但是数据删除不了。数据库连接正常,能查询增加数据。 try { con = new SqlConnection("server=.\\sqlexpress;integrated security=true;database=master;"); con.Open(); cmd = new SqlCommand("delete from [table_outside] where 展项名称 = '@disname'",con); cmd.Parameters.AddWithValue("@disname", "58寸触摸一体机"); cmd.ExecuteNonQuery(); con.Close(); MessageBox.Show("成功删除"); } catch (Exception ex) { Console.WriteLine(ex.Message); MessageBox.Show("查找数据失败,请检查数据库连接是否正常"+ex.Message); }
c#winfrom修改MD5加密的密码
sql server数据库中有一个用MD5加密的密码,现在要在c#winform中修改密码,并然后新密码保存至数据库中,我有一串代码,可以修改,但是重新登录时,一直显示密码错误,我能确保我输入的密码是我改好的密码,求解决。 ``` SqlConnection sqlConnection = new SqlConnection(); sqlConnection.ConnectionString = "Server=(local);Database=DB_Equipment;Integrated Security=sspi"; SqlCommand sqlCommand = sqlConnection.CreateCommand(); sqlCommand.CommandText = "UPDATE tb_administrator" + " SET Password = HASHBYTES('MD5',@Password)" + " WHERE No=@No;"; sqlCommand.Parameters.AddWithValue("@Password", this.txb_newpwd.Text.Trim()); sqlCommand.Parameters.AddWithValue("@No", UserHelper.administratorNo); sqlConnection.Open(); int rowAffected = sqlCommand.ExecuteNonQuery(); sqlConnection.Close(); if (rowAffected == 1) { MessageBox.Show("密码修改成功,请重新登录!"); UserHelper.userPassword = txb_newpwd.Text.Trim(); this.Hide(); frm_Home frm_home = new frm_Home(); frm_home.Show(); } else { MessageBox.Show("密码修改失败!"); } ```
在给text文本框加了runt=server后如何还能让它通过js写的显示和隐藏功能实现?
<input type="radio" name="Funddonate" id="rbt1" onclick="rbt1_Click()" runat="server" />10 <input type="radio" name="Funddonate" id="rbt2" onclick="rbt1_Click()" runat="server"/>50 <input type="radio" name="Funddonate" id="rbt3" onclick="rbt1_Click()" runat="server"/>100 <input type="radio" name="Funddonate" id="rbt4" onclick="rbt1_Click()" runat="server"/>200 <input type="radio" name="Funddonate" id="rbt5" onclick="rbt1_Click()" runat="server"/>500 <input type="radio" name="Funddonate" id="rbt6" onclick="rbt1_Click()" runat="server"/>1000 <input type="radio" name="Funddonate" id="rbt7" onclick="rbt7_Click()" runat="server"/>其他 <input type="text" id="text1" style="width:30px;" runat="server" visible="false"/> <script> function rbt7_Click() { var mytext = document.getElementById("text1"); if(mytext.style.visibility == "hidden") { mytext.style.visibility = "visible"; } } function rbt1_Click() { var mytext = document.getElementById("text1"); if (mytext.style.visibility == "visible") { mytext.style.visibility = "hidden"; } } </script> C#代码 if (rbt7.Checked == true) { cmd.Parameters.AddWithValue("@Funds", text1.Value); }
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
MyBatis研习录(01)——MyBatis概述与入门
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往——自定义View系列教程(10篇) 走出思维困境,踏上精进之路——Android开发进阶精华录 讲给Android程序员看的前端系列教程(40集免费视频教程+源码) 版权声明 本文原创作者:谷哥的小弟 作者博客
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
web前端javascript+jquery知识点总结
Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。 浏览器对象模型(Br
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
渗透测试-灰鸽子远控木马
木马概述 灰鸽子( Huigezi),原本该软件适用于公司和家庭管理,其功能十分强大,不但能监视摄像头、键盘记录、监控桌面、文件操作等。还提供了黑客专用功能,如:伪装系统图标、随意更换启动项名称和表述、随意更换端口、运行后自删除、毫无提示安装等,并采用反弹链接这种缺陷设计,使得使用者拥有最高权限,一经破解即无法控制。最终导致被黑客恶意使用。原作者的灰鸽子被定义为是一款集多种控制方式于一体的木马程序
Python:爬取疫情每日数据
前言 有部分同学留言说为什么412,这是因为我代码里全国的cookies需要你自己打开浏览器更新好后替换,而且这个cookies大概只能持续20秒左右! 另外全国卫健委的数据格式一直在变,也有可能会导致爬取失败! 我现在已根据2月14日最新通报稿的格式修正了! 目前每天各大平台,如腾讯、今日头条都会更新疫情每日数据,他们的数据源都是一样的,主要都是通过各地的卫健委官网通报。 为什么已经有大量平台做
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
粒子群算法求解物流配送路线问题(python)
粒子群算法求解物流配送路线问题(python) 1.查找论文文献 找一篇物流配送路径优化+粒子群算法求解的论文 参考文献:基于混沌粒子群算法的物流配送路径优化 2.了解粒子群算法的原理 讲解通俗易懂,有数学实例的博文:https://blog.csdn.net/daaikuaichuan/article/details/81382794 3.确定编码方式和解码策略 3.1编码方式 物流配送路线的
教你如何编写第一个简单的爬虫
很多人知道爬虫,也很想利用爬虫去爬取自己想要的数据,那么爬虫到底怎么用呢?今天就教大家编写一个简单的爬虫。 下面以爬取笔者的个人博客网站为例获取第一篇文章的标题名称,教大家学会一个简单的爬虫。 第一步:获取页面 #!/usr/bin/python # coding: utf-8 import requests #引入包requests link = "http://www.santostang.
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
情人节来了,教你个用 Python 表白的技巧
作者:@明哥 公众号:Python编程时光 2020年,这个看起来如此浪漫的年份,你还是一个人吗? 难不成我还能是一条狗? 18年的时候,写过一篇介绍如何使用 Python 来表白的文章。 虽然创意和使用效果都不错,但有一缺点,这是那个exe文件,女神需要打开电脑,才有可能参与进来,进而被你成功"调戏”。 由于是很早期的文章了,应该有很多人没有看过。 没有看过的,你可以点击这里查看:用Pyt...
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问